从静态方法访问静态变量
我想从一个静态方法访问一个静态变量:
#!/usr/bin/env python
class Messenger:
name = "world"
@staticmethod
def get_msg(grrrr):
return "hello " + grrrr.name
print Messenger.get_msg(Messenger)
如何做到这一点,而不grrrr
传递给方法? 这是真正的面向对象吗?
任何像name
或self.name
似乎不工作:
NameError: global name 'name' is not defined
和
NameError: global name 'self' is not defined
使用@classmethod
而不是@staticmethod
。 在写完问题后才发现它。
在很多语言中(C ++,Java等),“静态”和“类”方法是同义词。 不在Python中。
def get_msg():
return "hello " + Messenger.name
你不能使用self.name,因为self没有定义。 self是非静态或非类型方法的第一个参数的命名约定。 它指向您调用该方法的对象。 由于你的方法是静态的,所以你不需要一个对象来调用它。
链接地址: http://www.djcxy.com/p/9185.html