我正在尝试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
的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
有人可以对引用,继承和容器在哪些地方和哪些地方不一致提供清晰的解释?
最佳答案
在python中,继承建立了类对象和类实例对象之间的指针关系。例如,一个类实例首先检查它自己的__dict__
然后指向它的类定义以查找任何缺少的属性。类似地,实例方法可以看作是应用于类方法的局部函数,再次为基础类方法提供了指针关系。使用python,继承只不过是当对象无法在其自身中找到某个属性时,它会向父对象(在mro中)查找丢失的属性-该层次结构是通过指针关系构建的。
那就是继承和指针引用相同的程度。指针引用更为通用。
关于python - 推荐人,推荐人, parent 和子女,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25651491/