当前位置: 首页 > news >正文

测牛学堂:软件测试python深入之类和对象的属性和方法总结

类对象和实例对象

类对象就是我们定义的类。
在代码执行的时候,解释器会自动创建类对象。
类对象的作用:
1 使用类对象创建实例对象
2 存储类的一些特性,就是类里面定义的属性
创建对象的过程也称为实例化的对象。所以,类创建的对象也称为实例对象,简称实例。
一般我们说的对象,默认就是实例对象。而类对象,默认说是类。

实例属性和类属性注意事项

1类属性是在类的内部直接定义的,类属性是被该类的所有实例化对象共享的。
2实例的属性是每个对象特有的,通常是在类的init方法中设置的。 类属性很少使用。
3 实例对象使用属性的时候,会先在实例属性中查找,找不到再去类属性中查找,再找不到会报错。
4 在类中访问类属性,要用类名.属性名 获取
代码示例:

class Tool:num = 0def __init__(self, name):self.name = nameTool.num += 1tool1 = Tool('t1')
tool2 = Tool('t2')
print(tool1.name, tool1.num)

方法分类

方法分为实例方法,类方法,静态方法
1 实例方法:
如果方法中需要使用实例属性,一定要定义为实例方法。
2 类方法
方法中不需要使用实例属性,建议定义为类方法。语法:方法上写@classmethod,方法的参数写为cls,表示类对象。不需要传递,python会自动传类作为参数。
3 静态方法:
方法中既不需要实例属性,也不需要类属性,可以定义为静态方法。
语法:@staticmethod
注意:
实例和类都可以直接调用类方法和静态方法
代码示例:

class Tool:num = 0def __init__(self, name):self.name = name# 类方法@classmethoddef add(cls):cls.num += 1print(cls.num)# 静态方法@staticmethoddef staticFn():print('static')# 实例方法def showName(self):print(self.name)tool1 = Tool('t1')
tool1.showName()  # t1
tool1.staticFn()  # static
tool1.add()  # 1
Tool.add()  # 2
Tool.staticFn()  # static
http://www.lryc.cn/news/12639.html

相关文章:

  • css实例--新闻页面
  • SpringCloudGateway 动态转发后端服务
  • 使用canvas写一个flappy bird小游戏
  • KVM-2、虚拟化基础
  • 设计模式之观察者模式与访问者模式详解和应用
  • [SSD固态硬盘技术 18] Over-Provisioning (OP 预留空间)详解,谁“偷”走了SSD的容量?
  • spring注解方式整合Dubbo源码解析
  • 大数值金额大写转换(C语言)
  • 迷宫问题图解 : 基于骨架提取、四邻域
  • 设计模式 - 如何在库和主程序之间互相调用数据和函数
  • Redis面试题:1~2亿条数据需要缓存,请问如何设计这个存储案例
  • 程序员必备的软技能-《如何阅读一本书》
  • Java数据结构-栈、队列常用类(Stack、ArrayDeque、LinkedLList)
  • 拯救了大批爬虫程序员,因为一个简单的神器
  • 2023年美赛C题Wordle预测问题三、四建模及Python代码详细讲解
  • 相关性-回忆录(持续更新)
  • (必备技能)使用Python实现屏幕截图
  • 「数据仓库」怎么选择现代数据仓库?
  • 6.3 使用 Swagger 生成 Web API 文档
  • Day894.加锁规则的一些问题 -MySQL实战
  • 【Flutter入门到进阶】Dart进阶篇---Dart异步编程
  • 点云配准方法原理(NDT、ICP)
  • 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介
  • 代码随想录算法训练营第45天动态规划 背包基础 1 2、 416. 分割等和子集
  • QT学习记录(六)类对象属性
  • Spring Cloud Alibaba从搭建到源码完整进阶教程
  • Spring Cloud Nacos实战(一)- 下载和安装
  • 深入理解设备像素比
  • Revisiting Distributed Synchronous SGD 带有Back-up机制的分布式同步SGD方法 论文精读
  • shiro CVE-2020-13933