class Dog:
tooth=10 #类属性
#构造(初始化)函数
def __init__(self, name):
self.name = name
self.age = 0 # 这表示在初始化的时候,不需要传递age
#实例(对象)方法
def get_gutou(self, n):
print(f'{self.name}吃了{n}个骨头')
#类方法
@classmethod
def zhua_moouse(cls):
print('狗拿耗子多管闲事')
# print(self.name) #类方法不能直接调用实例方法或者属性,但是可以通过实例化调用
gouDan=Dog('狗蛋')
gouDan.get_gutou(1)
@staticmethod #静态函数,区别于实例方法与类方法,不能直接调用实例方法或者属性,但是可以通过实例化调用;只是方便管理,便写在类下面
def jingTaiFangFa():
gouDan = Dog('狗蛋')
gouDan.get_gutou(1)
Dog.zhua_moouse()
if __name__ == '__main__':
wangcai = Dog('旺财')
wangcai.zhua_moouse() #一般不这么用
Dog.zhua_moouse()
Dog.jingTaiFangFa()