类与方法:
调用类中的变量或类外修改变量的值,调用方式:类名.变量名
类中的函数称为方法,调用:类.函数名()
类中的变量称为属性 调用:类.变量
@classmethod 声明下面的函数是类的方法
把类的变量传给类的方法,需用到三种特定格式:
@classmethod声明了函数1是类方法,这样才能允许函数1使用类属性中的数据。
Cls是class的简称,若类方法要想使用类属性,就要写上cls为函数1的第一个参数。也就是把这个类做为参数传给自己,自己就可以使用类中的变量。
cls.变量。类方法想使用类属性的时候,需要在这些变量名称前加上cls.
调用方法的格式:类名.方法名(),例如:类A.函数1()
注:若类中的函数不需使用类的变量,就不需使用@classmethod、cls、cls.变量的格式
类的实例化:
类是对象的模板,可以复制出多个对象,这个复制过程叫实例化。
使用实例名=类()的方式就得到了实例对象,简称实例。
不需要@classmethod,且cls换成了self,
调用方式:为类创建一个实例(实例名可以任取为一个变量名),然后再使用实例名.函数()的方式调用对应的方法
注:当类支持实例化后,不能使用类名.方法名()调用类方法
我们完成实例化后,对应于一个实例的属性和方法,叫“实例属性、实例方法”,不再称为“类属性、类方法”
实例属性、实例方法关系
实例属性和类属性完全相等,修改类属性,这会导致所有实例属性变化
修改实例属性,不会影响到其他实例,也不会影响到类。因为每个实例都是独立的个体,同理在类中新增属性会影响到实例,但在实例中新增属性只影响这个实例自己。
类属性、类方法的关系:
可以重写类方法,这会导致所有实例方法自动被重写
总结:
1.修改类属性和类方法,将会影响所有实例
⒉.修改某个实例的属性,只会影响这个实例自身
3.不能修改实例的方法