这篇教程Python面向对象之类和对象写得很实用,希望能帮到您。
类
定义类 - 所有类名首字母要求大写,多个单词时遵循驼峰命名法
- 所有未定义父类的类都继承object
格式:class 类名[(父类)]: #两种方式意思相同class Person: pass class Person(object): pass
定义类和属性name、age、subject就是类属性 class Student: #类属性 name = '' age = 0 subject = []
类中方法
对象方法(普通方法)格式:def 方法名(self[,parm1,parm2...]): pass self就是对象本身 class Student: # 类属性 name = 'student' age = 0 subject = [] # 普通方法 def study(self): print(self.name, '正在学习...') xiaoming = Student()xiaoming.name = 'xiaoming'xiaoming.study() ------------ 输出: xiaoming 正在学习...
class Student: # 类属性 name = 'student' age = 0 subject = [] # 普通方法 def study(self, name): print(name, '正在学习...') s1 = Student()s1.study('xiaohong') ---------------- 输出: xiaohong 正在学习...
类方法格式:@classmethoddef 方法名(cls): pass - 类方法使用@classmethod装饰器
- 对象方法传入的是self,类方法传入的是cls
- 类方法可以直接用类调用,或者可以用类的实例(对象)调用
class Dog: dog_type = '阿拉斯加' def __init__(self, nickname): self.name = nickname def dog_run(self): print('{}在公园里跑.看起来是一只{}.'.format(self.name, self.dog_type)) @classmethod def dog_sit(cls): print(cls.dog_type, '很乖,坐下了') dog1 = Dog('肉丸')dog1.dog_type = '小泰迪'dog1.dog_run()Dog.dog_sit() -------------- 输出: 肉丸在公园里跑.看起来是一只小泰迪. 阿拉斯加 很乖,坐下了
静态方法 - 静态方法使用装饰器@staticmethod
- 静态方法没有参数
- 当方法跟类属性和对象属性都没有关系的时候,使用静态方法
- 支持对象和类名直接调用
class Dog: def __init__(self, nickname): self.name = nickname @staticmethod def dog_sit(): print('很乖,坐下了') dog1 = Dog('肉丸')dog1.dog_sit()Dog.dog_sit() --------------------- 输出: 很乖,坐下了 很乖,坐下了
魔术方法格式:def __方法名__(self): pass __init__() 构造函数 - 如果没有__init__。直接利用类向内存申请一个和类一样的空间,给到对象。
- 如果有__init__。利用类向内存申请一个和类一样空间,内存空间(self)传递给__iniy__,执行__init__的函数。最后将内存空间给到对象。
对象
创建对象格式:对象名 = 类名() class Student: #类属性 name = '' age = 0 subject = [] xiaoming = Student()
对象属性 - 当创建了对象时,对象会继承类的属性。获取属性的时候,也是从类中获取属性。
- 当对默认的类属性赋值后(对象名.属性 = xxxx),属性才会变成对象属性。
class Student: # 类属性 name = 'student' age = 0 subject = [] xiaoming = Student()print('类属性:', xiaoming.name) # 此时是从类中获取的类属性xiaoming.name = 'xiaoming' # 因为赋值了,此时变成了对象属性print('对象属性:', xiaoming.name) ------------- 输出: 类属性: student 对象属性: xiaoming
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注51zixue.net的更多内容! 如何将Python字符串转换为JSON的实现方法 OpenCV图像处理之七种常用图像几何变换 |