Yu *_*ong 0 python class python-3.x
我是 Python 编程的新手,我对定义类有疑问。类在对象内有括号会有什么区别吗?
class MyFunction:
def Method1(self):
print('Hello World!')
Run Code Online (Sandbox Code Playgroud)
或者
class MyFunction(object):
def Method1(self):
print('Hello World!')
Run Code Online (Sandbox Code Playgroud)
谢谢。
如教程中的继承中所述,这:
class DerivedClassName(BaseClassName):
Run Code Online (Sandbox Code Playgroud)
... 使DeriveClassName继承自BaseClassName.
您可以从 1 个类、2 个类或 20 个类继承:
class Silly(Spam, Eggs, Cheese, Beans, Toast, Ham):
Run Code Online (Sandbox Code Playgroud)
但是你不能从任何类继承。您可以编写class没有基类名称的语句,但这意味着您是从通用基类object.
因此,所有这三个都是相同的:
class Derived: pass
class Derived(): pass
class Derived(object): pass
Run Code Online (Sandbox Code Playgroud)
(然而,这仅适用于 Python 3.0 及更高版本。在 2.x 中,前两个实际上创建了一个“旧式”或“经典”类,而不是一个普通类。)
如果你查看你的类dir或inspect模块,你会发现它有一大堆你没有在任何地方定义的东西——一个__repr__方法、一个__module__字符串等等。其中一些是由class语句自动填充的,但大多数是从`object.