我想在Python中使用setattr做类方法中的类,但是类不存在所以我基本上得到:
NameError: global name 'ClassName' is not defined
Run Code Online (Sandbox Code Playgroud)
有没有办法让类方法修改类?像这样的东西但实际上有效:
class ClassName(object):
def HocusPocus(name):
setattr(ClassName, name, name)
HocusPocus("blah")
HocusPocus("bleh")
Run Code Online (Sandbox Code Playgroud)
类方法获取作为第一个参数传递的类:
class Bla(object):
@classmethod
def cm(cls,value):
cls.storedValue = value
Bla.cm("Hello")
print Bla.storedValue # prints "Hello"
Run Code Online (Sandbox Code Playgroud)
编辑:我想我现在明白你的问题.如果我弄错了,你想要做的就是:
class Bla(object):
storedValue = "Hello again"
print Bla.storedValue # prints "Hello again"
Run Code Online (Sandbox Code Playgroud)
Python中的类创建(几乎)仅仅意味着:
由于storedValue 是在步骤2后的命名空间,它变成一个类属性在步骤3中.
| 归档时间: |
|
| 查看次数: |
345 次 |
| 最近记录: |