关于python:如何使用静态方法初始化静态变量?

How to initialise static variable using static method?

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
class One:
    i = One.get(9)
    @staticmethod
    def get(val):
        pass

我尝试使用静态方法初始化静态变量,但上面的代码会引发此错误:

1
NameError: name 'One' is not defined

如何使用Python中的静态方法初始化静态变量?


1
2
3
4
5
6
class One:
    @staticmethod
    def get(val):
        pass

    i = get.__func__(9)

不过,可能不是最像Python的方式。注意,i变量在get声明之后。由于@staticmethod不能直接调用(如果调用,将收到一条消息),因此必须执行底层函数(__func__)。