推荐人,参照人,父母和子女

时间:2014-09-03 18:44:07

标签: python reference pass-by-reference refer dill

我正在尝试使用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_listMyClass也是a_list的指示对象,但是链接的某个深度还会进一步上升吗?

因此,如果->表示引用,那么指示符链会是这样的:

a_list -> an_instance -> MyClass

这会被视为:

grandchild -> child -> Parent

相反,a_listan_instance以及an_instance2, an_instance3的引荐来源,另一个是深度MyClass吗?

制作引荐链

MyClass -> an_instance -> a_list

这也可以构思出来:

parent -> child -> grandchild

有人可以清楚地解释引用,继承和容器的位置和不一致吗?

1 个答案:

答案 0 :(得分:2)

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

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