2012-06-03 45 views
-1

我一直無法讓python生成一個(非預定的)數量的類實例。基本上有類可以複製自己。在Python中生成類實例

class foo: 
    def __init__(self, name): 
     self.name = name 

while True: 
    newinstance(foo) #what would the code be for this? 
        #or maybe 
    foo.newinstance #just something that could update itself 

基本上生成任意次數的新實例。提前致謝。

+1

的newInstance = FOO(「名稱」) –

+0

我知道如何使一個新的實例,我的意思是生成它們的數額不詳。 – nebuch

回答

3

這將做你問什麼,但你要守住不知何故值:

while True: 
    foo(some_name) 

這將永遠循環下去,這樣比較現實的選擇可能是:

names = ["Ned", "Felix", "Guy"] 
fooses = [foo(name) for name in names] 
2

使用列表理解:

instances_of_foo = [foo("bar") for i in range(number_of_instances)] 

另外,如果你想不同的參數傳遞給每個instanc e,您可以創建參數列表,而不是使用range()

list_of_args = [args_for_instance_one, args_for_instance_two,...] 

instances_of_foo = [foo(arg) for arg in list_of_args] 
+2

問題中沒有提及任何列表。假設提問者想要一個列表是合理的,但'name_list'需要向提問者解釋(考慮到'多次','range()'可能更有意義)。 –

+0

@Lattyware是的,但他希望能夠在運行時產生一定數量,所以他需要一個集合來保存它們。這絕對是最好的答案。 – evanmcdonnal

+0

@evanmcdonnal是的,需要一個列表來存儲實例 - 我指的是另一個列表。 –