2012-03-25 163 views
0

我已代碼就像如下:

class test: 
    def do_something(): 
     pass 

test1 = test() 
test2 = test() 
test3 = test() 
test4 = test() 
test5 = test() 
test6 = test() 
test7 = test() 
test8 = test() 
test9 = test() 
... 

現在我需要調用每個實例的功能,就像這樣:

test1.do_something() 
test2.do_something() 
test3.do_something() 
test4.do_something() 
test5.do_something() 
test6.do_something() 
test7.do_something() 
test8.do_something() 
test9.do_something() 
... 

太多的課,所以我想可能是一個for循環就可以完成工作:

for i in range(1, 30): 
    ("test" + str(i)).do_something() 

當然這是行不通的,對於字符串沒有do_something()函數,任何人都可以有任何想法實現的功能?

+5

爲什麼不直接使用數組? – 2012-03-25 14:26:29

+2

爲什麼有人會使用最無用的編程語言功能之一? – Griwes 2012-03-25 14:29:59

+0

PHP *中的'$$'功能真的很糟糕。我不會推薦任何人使用它。 – 2012-03-25 14:36:51

回答

7

使用listdict來存儲您的變量。例如:

class Test: 
    def doSomething(self): 
     pass 

tests = [Test() for i in range(9)] 

# Now to invoke the functions: 
tests[0].doSomething() 
tests[1].doSomething() 
... 
tests[8].doSomething() 

# or if you want to do them all at once: 
for item in tests: 
    item.doSomething() 
+1

Minor nitpick:拋出TypeError:doSomething()不帶任何參數(給出1)'。 – bernie 2012-03-25 14:41:56

+0

啊,當然*拍頭*。謝謝。 – 2012-03-25 14:42:43

+0

非常感謝。我從中學到了很多東西。 – Searene 2012-03-26 06:09:41

相關問題