1

我正在尝试使用Dill包,特别是它的检测模块,并且在直观地理解参照物、参照物、父母和孩子的含义时遇到了一些麻烦。

引用是允许访问某些数据的值。

引用对象是引用的对象,对吧?

所以在下面的代码中:

class MyClass:
    """A simple example class"""
    i = 12345
    def f(self):
        return 'hello world'

an_instance = MyClass()
an_instance2 = MyClass()
an_instance3 = MyClass()

a_list = [an_instance, an_instance2, an_instance3]

an_instance, an_instance2, an_instance3的所指对象是否a_list也是MyClass的所指对象a_list,但在链上更深一层?

因此,通过->表示引用引用链看起来像:

a_list -> an_instance -> MyClass

这是否会被视为:

grandchild -> child -> Parent

反之,是否是另一个深度级别的a_list推荐人?an_instancean_instance2, an_instance3MyClass

制作推荐人链

MyClass -> an_instance -> a_list

这是否也会被设想:

parent -> child -> grandchild

有人可以清楚地解释引用、继承和容器在哪里重合和不重合吗?

4

1 回答 1

2

在python中,继承在类对象和类实例对象之间建立了一种指针关系。例如,一个类实例首先检查它自己的__dict__然后指向它的类定义以查找任何缺失的属性。类似地,实例方法可以看作是应用于类方法的部分方法,再次给出了指向底层类方法的指针关系。使用python,继承只不过是当一个对象在自身内部找不到某些属性时,它会向父(在mro中)查找缺少的属性——该层次结构是通过指针关系构建的。

这就是继承和指针引用相同的程度。指针引用更为通用。

于 2014-09-03T20:02:48.783 回答