2011-03-08 38 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

相关问题