【问题标题】:What is the maximum number of methods on a Python class?Python 类的最大方法数是多少?
【发布时间】:2011-03-08 01:03:55
【问题描述】:

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

【问题讨论】:

  • 如果您担心其中一个类可能包含的方法比单个类 + 2 所能包含的方法多,那么您遇到的问题比您想象的要严重。
  • 我认为会有,因为一般软件的编程充满了任意限制......堆栈大小,文件名长度等。

标签: python unit-testing class methods


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我强烈怀疑你是否曾达到极限,即使有极限。据我所知,对象可以拥有的方法数量仅受内存限制。我刚刚定义了一个具有一百万个函数的类,没有问题。如果你不相信我,试试这个:

    >>> 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
    

    如果你的类有超过一百万个函数(见鬼,或者十几个左右),你还有其他问题。

    【讨论】:

    • 啊我应该考虑尝试这样的事情......我通常不会有超过十几个方法的类,但unittest 范式似乎鼓励它
    • 为什么有十几个函数会成为问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 2011-10-25
    • 2010-10-17
    • 2021-03-02
    相关资源
    最近更新 更多