class Person(object):
type='human'
def __init__(self,name,age):
self.name=name
self.age=age
def eat(self,food):
print(self.name+'正在吃'+food)
# 如果一个方法中没有用到实例对象的任何属性,可以将这个方法定义成static 也就是静态方法
@staticmethod
def demo():
print("hello")
#如果一个函数中只用到了类属性,我们可以把定义成一个类方法
#类方法会有一个参数cls,也不需要手动的传参,会自动传参
#其中cls指的是类对象是Person , 实例对象为 p=Pesrson()其中p为实例对象
@classmethod
def test(cls):
print(cls.type)
p=Person("lisi",12)
p1=Person('zhangsan',16)
p.eat("狗粮")
p1.eat("猫粮")
#这种方式,不会自动给self传参,需要手动的指定self,所以会报错
#Person.eat("西红柿")
#正确方式
#Person.eat(p1,"西红柿")
#静态方法调用方式
#实用场景工具类
Person.demo()
p1.demo()
#类方法:可以实用实例对象和类对象调用
p1.test()
Person.test()
![]()