2011-03-08 36 views
4

我自動爲一些Python代碼生成單元測試,這些代碼的數量爲數千。 unittest模塊使用類來包含測試,但我猜測有一個類可能包含的方法數量的上限 - 是這種情況嗎?Python類的方法的最大數量是多少?

+0

爲什麼會有? – OrangeDog 2011-03-08 01:07:26

+2

如果您擔心您的某個課程可能包含的方法多於您在單個課程中所能提供的方法+ 2,那麼您的問題比您想象的要差。 – wheaties 2011-03-08 01:14:56

+0

我以爲會有這樣的結果,因爲一般的軟件都是編程完全的任意限制......堆棧大小,文件名長度等。 – Brendan 2011-03-08 01:16:58

回答

8

類的方法(實際上全部屬性)存儲在dict中。 a dict可以包含的項目數沒有限制,但每個項必須是唯一的。

+1

內存是限制。 – armandino 2011-03-08 01:14:03

6

我強烈懷疑你會達到極限,即使有一個。據我所知,一個對象可以擁有的方法數量僅受內存的限制。我剛剛定義了一個具有一百萬個功能的類,沒有問題。試試這個,如果你不相信我:

>>> class C(object): pass 
>>> for i in xrange(10**6): 
     exec('C.func%d=lambda self: %d'%(i,i)) 

>>> c = C() 
>>> c.func1() 
1 
>>> c.func999999() 
999999 

如果你的類有超過一百萬的功能(地獄,或十幾家左右),您有其他問題。

+1

啊我應該想到嘗試這樣的事情......我通常不會有超過十幾種方法的類,但單元測試範式似乎鼓勵它 – Brendan 2011-03-08 01:21:48

相關問題