如果想之后用点调用对象的一个属性name,要用self.name写在类里。
父类属性名字前面加两个下划线可以防止该属性被子类继承。
class Animal:
burudongwu = True
def __init__(self, name):
self.__name = name
def eat(self):
print(‘Animal的吃’)
dog = Dog()
dog.eat()
print(dog.__name) #报错
print(Animal.burudongwu) # 打印True
a1 = Animal(‘旺财’)
a2 = Animal(‘小白’)
print(a1.burudongwu) # 打印True
burudongwu = False # 在外面改类的属性
print(a2.burudongwu) # 打印False
装饰器@classmethod放在类里的函数前,能把对象的函数变成类的函数。
装饰器的本质就是一个函数,把被装饰的函数当成参数。