@staticmethod

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


posted @ 2018-10-10 10:33  梦幻轩  阅读(329)  评论(0编辑  收藏  举报