代码之家  ›  专栏  ›  技术社区  ›  Nate

Python“对象”类型和继承

  •  4
  • Nate  · 技术社区  · 17 年前

    在Python中,我可以通过以下方式定义类“foo”:

    class foo:
        pass
    

    class foo(object):
        pass
    

    有什么区别?我尝试使用函数issubclass(foo,object)来查看它是否为这两个类定义返回True。事实并非如此。

    IDLE 2.6.3      
    >>> class foo:
            pass
    
    >>> issubclass(foo, object)
    False
    >>> class foo(object):
            pass
    
    >>> issubclass(foo, object)
    True
    

    谢谢

    3 回复  |  直到 17 年前
        1
  •  9
  •   Community Mohan Dere    9 年前

    继承自 object What is the difference between old style and new style classes in Python?

    正如@CrazyJugglerDrummer在下面评论的那样,在Python3中,所有类都是“新型”类。在Python 3中,以下两个声明完全等效:

    class A(object):
        pass
    
    class A:
        pass
    
        2
  •  2
  •   John Millikin    17 年前

    第一个类创建了一个“旧式”类,该类在Python3中已被弃用并删除。您不应该在Python2.x中使用它。有关详细信息,请参阅文档 Python data model .

        3
  •  2
  •   fortran    17 年前

    和 新风格