-----------------------------------------------------------
代码部分:
class Dog(object):
def __init__(self,name):
self.name=name
#@staticmethod
def eat(self,food):
print("%s is eating %s"%(self.name,food))
d=Dog("erha")
d.eat("包子")
执行结果:
erha is eating 包子
若加入@staticmethod之后执行结果为:
TypeError: eat() missing 1 required positional argument: 'food' #少了一个food参数
结论:@staticmethod的主要作用是将eat()与类独立开来,不想让类调用,它实际上和类没有什么关系了,像一个单独的函数