-----------------------------------------------------------
代码部分
class Dog( ):
    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()与类独立开来,不想让类调用,它实际上和类没有什么关系了,像一个单独的函数


收藏 打印