Python类上最多可以有多少个方法?
我正在为一些数量达到上千的Python代码自动生成单元测试。unittest
模块使用类来组织这些测试,不过我在想,一个类里面能包含的方法数量是不是有上限?这是真的吗?
2 个回答
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
如果你的类有超过一百万个函数(其实就算超过十几个),那你可能有其他问题了。
10
一个类的方法(其实所有的属性)都存储在一个叫做 dict
的字典里。这个字典里可以放很多东西,唯一的限制就是每个键(key)必须是独一无二的。