声明A类和A()类有什么区别?

时间:2019-09-19 16:08:51

标签: python python-3.x class

我们在python中定义类如下:

class A:
    def x(self):
        print("In x")

但是我只是打错了字,它在python 3.7版的linux cli中成功执行了。在这里:

class A():
    def x(self):
        print("In x")

这是什么意思?

2 个答案:

答案 0 :(得分:4)

您可以选择在Python中使用语法class Child(Parent): inherit from other classes。在圆括号中不保留任何参数与省略圆括号是相同的:您仅从基object类继承而已。例如:

class A:
    pass

class B(object):
    pass

class C():
    pass

import inspect

inspect.getmro(A)
# (__main__.A, object)
inspect.getmro(B)
# (__main__.B, object)
inspect.getmro(C)
# (__main__.C, object)

所有等效项。作为反例:

class D(A):  # inherit from A
    pass

inspect.getmro(D)  # should include A now
# (__main__.D, __main__.A, object)

答案 1 :(得分:0)

在python 2.x中会有区别,但是在python3中是相同的。

长版 A类(对象):     通过

与 A()类:     通过

因为对象是类的默认输入

这只是上述版本的更短版本 A类:     通过