是否有可能在python中有静态类变量或方法?这样做需要什么语法?
如果我有以下python代码:
class Foo(object):
bar = 1
def bah(self):
print(bar)
f = Foo()
f.bah()
Run Code Online (Sandbox Code Playgroud)
它抱怨
NameError: global name 'bar' is not defined
Run Code Online (Sandbox Code Playgroud)
如何bar在方法中访问类/静态变量bah?
基本上我想做这样的事情:
class foo:
x = 4
@property
@classmethod
def number(cls):
return x
Run Code Online (Sandbox Code Playgroud)
然后我希望以下工作:
>>> foo.number
4
Run Code Online (Sandbox Code Playgroud)
不幸的是,上述方法无效.而不是给我4它给我<property object at 0x101786c58>.有没有办法实现上述目标?
我想从静态方法访问静态变量:
#!/usr/bin/env python
class Messenger:
name = "world"
@staticmethod
def get_msg(grrrr):
return "hello " + grrrr.name
print Messenger.get_msg(Messenger)
Run Code Online (Sandbox Code Playgroud)
没有传递grrrr给方法怎么做?这是真正的OOP吗?
任何喜欢name或self.name似乎不起作用的东西:
NameError: global name 'name' is not defined
Run Code Online (Sandbox Code Playgroud)
和
NameError: global name 'self' is not defined
Run Code Online (Sandbox Code Playgroud)