我正在尝试使用Dill软件包,特别是它的检测模块,并且在直觉上了解所指对象,参与者,父母和孩子的含义时会遇到一些麻烦。
reference是一个允许访问某些数据的值。
对象是referred to的对象,对吧?
所以在下面的代码中:
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
的{{1}}指示对象是a_list
,MyClass
也是a_list
的指示对象,但是链接的某个深度还会进一步上升吗?
因此,如果->
表示引用,那么指示符链会是这样的:
a_list -> an_instance -> MyClass
这会被视为:
grandchild -> child -> Parent
相反,a_list
是an_instance
以及an_instance2, an_instance3
的引荐来源,另一个是深度MyClass
吗?
制作引荐链:
MyClass -> an_instance -> a_list
这也可以构思出来:
parent -> child -> grandchild
有人可以清楚地解释引用,继承和容器的位置和不一致吗?
答案 0 :(得分:2)
在python中,继承在类对象和类实例对象之间构建指针关系。例如,类实例首先检查它自己的__dict__
,然后指回它的类定义以查找任何缺少的属性。类似地,实例方法可以看作是应用于类方法的局部方法,再次给出了与底层类方法的指针关系。使用python,继承只是当一个对象本身找不到某个属性时,它会回溯到缺少属性的父级(在mro中) - 该层次结构是通过指针关系构建的。
这是关于继承和指针引用相同的程度。指针引用更为通用。