我想从静态方法访问静态变量:
#!/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
无法使用self.name,因为未定义self。self是非静态或非classmethod方法的第一个参数的命名约定。它指向调用该方法的对象。因为方法是静态的,所以不需要对象来调用它。
使用
在许多语言(C++、java等)中,“静态”和“类”方法是同义词。Not in Python.@classmethod
而不是@staticmethod
。刚写完问题就找到了。相关问题 更多 >
编程相关推荐