Python类上最多可以有多少个方法?

5 投票
2 回答
2454 浏览
提问于 2025-04-16 13:12

我正在为一些数量达到上千的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)必须是独一无二的。

撰写回答