从静态方法访问静态变量(Access static variable from static met

2019-06-25 20:14发布

我想从一个静态方法访问静态变量:

#!/usr/bin/env python
class Messenger:
    name = "world"
    @staticmethod
    def get_msg(grrrr):
        return "hello " + grrrr.name

print Messenger.get_msg(Messenger)

如何做到这一点没有通过grrrr的方法? 这是真正的OOP?..

像什么nameself.name似乎不工作:

NameError: global name 'name' is not defined

NameError: global name 'self' is not defined

Answer 1:

使用@classmethod代替@staticmethod 。 只是写的问题后发现它。

在许多语言(C ++,JAVA等)“静态”和“类”的方法是同义词。 没有在Python。



Answer 2:

def get_msg():
    return "hello " + Messenger.name

因为自己没有定义您不能使用self.name。 自我是用于非静态或非类方法方法的第一个参数的命名约定。 它指出,在其上调用该方法的对象。 既然你的方法是静态的,你并不需要一个对象来调用它。



文章来源: Access static variable from static method