python - Python 对象是否源自一个共同的父类?

标签 python python-2.7 oop python-3.x

Python 中的一切都是对象,几乎一切都有属性和方法。现在,根据面向对象编程,在 Python 中创建的每个对象都必须是公共(public)父类的实例。但是,这个逻辑对我来说毫无意义。

有人可以帮我解决这个问题吗?

最佳答案

according to Object Oriented Programming, every object created in Python must be an instance of a common parent class

不正确。碰巧,在 Objective-C、Java(也许还有 C#?)中,事物倾向于从单个父类(super class)派生,但这是一个实现细节,而不是 OO 设计的基础。

OO 设计只需要一个足够通用的方法来找到您希望在您希望调用它的对象上调用的方法的实现。这通常是语言工作方式的基础(C++、C#、Java、Objective-C、Python 等都按照自己的方式进行,对他们的语言有意义)。

在 C++ 中,这是由链接器为静态类型完成的,由向量表为动态类型(通过虚拟继承)完成——不需要公共(public)基类。

在 Objective-C 中,这是通过在对象类结构的 HashMap 中查找某些内容,然后调用特定方法来获取所需方法的签名来完成的。这段代码很微妙,所以所有内容通常都派生自一个单一的公共(public)基类。

从技术上讲,Python 不应该要求这样做,但我认为他们已经做出了一个实现选择,使一切都成为一个类,并且每个类都派生自一个公共(public)基类。

关于python - Python 对象是否源自一个共同的父类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32446240/

相关文章:

python - 如何在DigitalOcean App平台中禁用CORS策略并允许从任何地址访问?

python - 在python中使用ffmpeg切割mp3 - 编解码器复制错误

c# - 抽象类中的分组方法

用于搜索专利数据库的 Python 模块,即 USPTO 或 EPO

python - 混洗结构化数组(记录数组)

c# - 抽象类的特点

python:抽象基类'__init__():初始化还是验证?

python - 在 Python 中用单个值有条件地填充列

python - 置信区间 3 维图

python - 如何从命令行将十六进制值传递给 python 脚本