@staticmethod

发布时间:2019-03-16 22:24:09编辑:auto阅读(1937)

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


关键字