通常,我们使用属性名称为class属性设置一个值:
class Value:
def __init__(self, value=None):
self.value = value
#setter definition block
>>>my_obj = Value()
>>>my_obj.value = 10
但是我想在没有属性名称的情况下进行操作。 它应该像下面的代码一样工作:
class Value:
def __init__(self, value=None):
self.value = value
#setter definition block
>>>my_obj = Value()
>>>my_obj = 10
>>>print(myObj.value)
10
这意味着它不对名称为“ value”的属性使用名称。如果您为类Value()
设置了任何值(10),那么将为名为Value.value
的属性设置该值。
有可能吗?
答案 0 :(得分:-1)
这是我在尝试回答您的问题时弄混的东西。我不确定为什么您要在类中设置某些东西而又不知道它是什么(对我来说似乎有点废话),所以也许您只想将类中的EVERYTHING设置为10。下面应该这样做:< / p>
class Value:
def __init__(self, value=None):
self.value = value
abc = Value()
print(abc.value) # prints None
for i in dir(abc):
if(i[0] != '_'):
exec("abc."+i+"=10")
print(abc.value) # prints 10
通过在类上使用dir()
,您将获得该类中的所有方法和变量。如果使用简单的类定义,则所有预定义的方法和变量均以两个下划线开头,因此,通过删除这些下划线,我们可以访问您自己添加到类中的值,并使用exec()
对其进行赋值。我不建议这样做