类变量与实例变量
看这个例子
因为当用self.var去call一个变量的时候的顺序是实例的dict->类的dict->基类
也就是如果再实例里面找到这个变量相同的名字,就用实例的变量,没有找到就去找类变量,再没有找到就会找基类的变量,最后还没有找到就会报错
类变量还可以用 类名.变量名去调用
实例变量只可以用self.变量名
类的实例方法,静态方法与类方法
参考这个链接
实例方法
形式:
class A(object):
def function(self,var1):
最常见的方法包括了init等函数类方法
用@classmethod修饰,需要传入一个非self参数,这个参数的名字常写作cls或者cls_obj(也可以是其它名字,不是self), 可以被实例调用也可以被对象调用1234567891011121314class Person(object):num = 0def __init__(self,name):self.name=namePerson.num +=1@classmethoddef get_nomber_of_instance(cls):return cls.numif __name__ == "__main__":print("hello world")a = Person("bob")b = Person("bob2")print(Person.get_nomber_of_instance())print(a.get_nomber_of_instance())
这样的好处是在类的内部,通过第一个参数cls把类传递出来