簡體   English   中英

Python:如何在另一個類中自動創建實例

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM