我正在尝试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_instance3a_list引用对象,并且MyClass也是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


有人可以对引用,继承和容器在哪些地方和哪些地方不一致提供清晰的解释?

最佳答案

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

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

关于python - 推荐人,推荐人, parent 和子女,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25651491/

10-10 13:42