python - 从静态方法访问静态变量

标签 python oop static-methods static-variables

我想通过静态方法访问静态变量:

#!/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

最佳答案

使用 @classmethod 代替 @staticmethod。刚写完问题就找到了。

在许多语言(C++、Java 等)中,“静态”和“类”方法是同义词。 Not in Python.

关于python - 从静态方法访问静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11233729/

相关文章:

c# - 从静态方法调用后代虚拟方法

javascript - 是否可以从继承的工厂方法一般实例化 JS 类类型?

python - Selenium 页面源缺少元素

python - 将两列等长合并为一列

c++ - 'this' 与继承的奇怪行为

python - 试图创建只读属性属性 - getter 返回初始化值,直接访问返回更改后的值

python - 如何将_id设置为32位整数?

python - 当我使用 ffmpeg 将 numpy 数组转换为音频文件(python)时,为什么 mp3/wav 持续时间不同?

c++ - 直接访问成员变量还是作为参数传递?

c# - 在静态方法(扩展方法)中取消订阅匿名事件处理程序