[英]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.