Python类的方法的最大数量是多少?
问题描述:
我自动为一些Python代码生成单元测试,这些代码的数量为数千。 unittest
模块使用类来包含测试,但我猜测有一个类可能包含的方法数量的上限 - 是这种情况吗?Python类的方法的最大数量是多少?
答
我强烈怀疑你会达到极限,即使有一个。据我所知,一个对象可以拥有的方法数量仅受内存的限制。我刚刚定义了一个具有一百万个功能的类,没有问题。试试这个,如果你不相信我:
>>> 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
为什么会有? – OrangeDog 2011-03-08 01:07:26
如果您担心您的某个课程可能包含的方法多于您在单个课程中所能提供的方法+ 2,那么您的问题比您想象的要差。 – wheaties 2011-03-08 01:14:56
我以为会有这样的结果,因为一般的软件都是编程完全的任意限制......堆栈大小,文件名长度等。 – Brendan 2011-03-08 01:16:58