文章目录
python是一门面向对象的语言,其中最为重要的概念就是类与对象:
类和对象:
类:对一类事物的抽象概念(模型),不是真实存在,描述了该类事物共同的特征和行为。
实例对象:类的具体个体,是该类事物的具体表现,是真实存在的
类名规范:
- 符合标识符的命名规范:英文数字加下划线,不能够以数字开头。
- 命名风格:大驼峰
属性
属性是用来描述事物的特征的。
属性分为类属性和实例属性:
- 类属性:这一类事物所具有的共同特征
- 定义:在类中直接定义的变量
- 调用:直接通过类名和实例对象都能够调用
- 实例属性:对象所具有的独有属性
- 定义:对象名.属性名
- 调用:对象名.属性名。只能够通过对象来调用
方法
实例方法
- 定义:方法中第一个参数为self的方法,哪一个对象调用该方法,self就代表这个对象
- 调用:只能够通过实例对象来调用这个方法
类方法
- 定义:使用 @classmethod 修饰的方法,第一个参数为 cls。方法内部不使用实例属性。
- 调用:能够使用类和对象来调用这个方法
静态方法
- 定义:使用 @staticmethod 修饰的方法,方法内部不使用类属性和实例属性。
- 调用:通过类直接调用这个方法
三者的区别
- 实例方法中因为有self参数,所以一般用于对类对象所拥有的方法、属性等的调用
- 类方法中有cls参数,一般用于对类属性,类方法的调用。不可调用对象属性和方法
- 静态方法中没有cls,self参数,一般用来存放与类、对象完全无关的方法
_ _ init_ _方法
初始化方法,在类被调用时会自动执行该方法
class Student:
def __init__(self,name,age):
self.name = name
self.age = age
xiaoming = Student('xiaoming','19')
类定义的两种形式:
- class(object) :python 2 语法,继承object
- class student :python 3语法,与上一种定义格式一样
类的继承
继承的好处:通过继承,子类能够获得父类的所有公有方法和属性,可以提高代码的可复用性。
语法:class Cat(Animal)
父类方法重写
子类中有一个和父类相同名称的方法,在子类中方法会覆盖掉继承父类的同名方法。
调用顺序:优先调用自己类中的方法,如果在自己类中没有找到,就会去父类中查找是否有该方法。
如何调用已经被重写的父类方法?
使用super()能够调用重名的父类方法。
多继承
一个类继承多个父类,能够继承所有父类的公有方法和公有属性。
调用顺序:
- 如果两个父类都定义了同名的一个方法,子类也重写了该方法,那么优先调用子类的该重写方法。
- 如果子类没有重写该方法,那么先调用写在前面的那个父类中对应的该重写方法
动态设置属性:
- setattr(类名,属性名,属性值):动态设置类中对应的属性为传入的属性值,用于不确定属性名的场景
- getattr(类名,属性名,默认值):如果在类中未找到该属性,则返回默认值。
- 一般用于不确定属性名的场景,例如属性名为列表中的值。
- delattr(类名,属性名):删除类中对应的属性,和del相似,但可用于不确定属性名的删除。
- hasattr(类名、属性名)
最后总结一下:
如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:软件测试技术群:593462778,群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
作者:暗潮汹涌
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。
版权声明:本文为qq_34659777原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。