[英]Python: how to automatically create an instance in another class
在编写Python(2.5)程序时,我尝试创建一个类,并在其__init__
函数中自动创建另一个类的实例,该类的名称作为__init__
函数的参数,如下所示:
class Class1:
def __init__(self,attribute):
self.attribute1=attribute
class Class2:
def __init__(self,instanceName):
#any of Class2's attributes
exec instanceName + '=Class1('attribute1')'
# this should produce an instance of Class1 whose name is instanceName
但是,当我创建Class2的实例, instance=Class2('instance2')
,并尝试获取instance2的attribute1(应该已经从Class2的__init__
函数创建)时,我收到一条错误消息:
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
print instance2.attribute1
NameError: name 'instance2' is not defined
我不知道问题出在哪里,因为name='instance3'
和exec name+'=Class1('attribute1')
确实可以工作,尽管这可能是因为我对Python没有太多的经验。 创建实例后,我将如何自动执行此类操作?
我必须跑步,所以希望其他人可以解决此帖子中的任何错误:
class Class1:
def __init__(self, attribute):
self.attribute1 = attribute
class Class2:
def __init__(self, instanceName):
setattr(self, instanceName, Class1(...)) # replace ... with whatever parameters you want
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.