Python类中方法的最大数量是多少?

5

我正在自动生成数以千计的Python代码的单元测试。 unittest 模块使用类来包含测试,但是我猜测类中可能包含的方法数量存在上限 - 这是真的吗?


2
如果你担心你的某个类可能包含的方法比你能在一个类中容纳的方法还要多2个,那么你的问题比你想象的更严重。 - wheaties
我认为会有这种情况,因为一般软件编程中充满了任意限制...如堆栈大小、文件名长度等。 - Brendan
2个回答

10

类的方法(实际上是所有属性)都存储在一个dict中。一个dict可以包含任意数量的项,但每个键必须是唯一的。


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
啊,我早该想到尝试这样做了……我通常不会有超过十几个方法的类,但unittest范式似乎鼓励这样。 - Brendan
拥有超过十几个函数会有什么问题? - Faizi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接