继续使用Dill package进行工作。昨天发布了一些例子ignorance of referents, referrers, inheritance and containers。答案很有洞察力,但我仍然无法提出一些例子,这些例子在推荐人和指称链中显示出几个层次的深度。指示物链的示例,推荐人
昨天我在想,instance
将是一个referrer
到它的类。在迪尔文档孩子是引荐,所以在这种情况下,孩子的depth=2
将是一个孙子,对不对?那是object
那是指(点)到另一个object
那是指另一个object
?
将是什么,其具有的所指和引荐至少两个深度的链的对象的一个例子?
考虑:
import dill
class GreatGrandparentClass(object):
"""A Great Grandparent class"""
name = "Henrietta Ancient One"
class GrandparentClass(GreatGrandparentClass):
"""A Grandparent class"""
class ParentClass(GrandparentClass):
"""A Grandparent class"""
great_grand_parent = ParentClass().name
print ("Children (depth=2):")
for element in dill.detect.children(
great_grand_parent,
list,
depth=2,
ignore=(globals())):
print(element)
print ("Parents:")
for element in dill.detect.parents(
great_grand_parent,
list,
depth=2,
ignore=(globals())):
print(element)
回报:
Children (depth=2):
['\npython pydill.py\n\n', 'dill', 'object', 'A Great Grandparent class', 'i', 'Henrietta Ancient One', 'GreatGrandparentClass', 'GreatGrandparentClass', 'A Grandparent class', 'GrandparentClass', 'GrandparentClass', 'A Grandparent class', 'ParentClass', 'great_grand_parent', 'ParentClass', 'i', 'Children (depth=2):', 'element', 'dill', 'detect', 'children', 'great_grand_parent', 'list', 'depth', 2, 'ignore', 'globals', 'element', 'Parents:', 'element', 'dill', 'detect', 'parents', 'great_grand_parent', 'list', 'depth', 2, 'ignore', 'globals', 'element']
Henrietta Ancient One
Parents:
Henrietta Ancient One
在list
对象明确看这里的great_grand_parent
单referrent(家长)是字符串, “亨丽埃塔远古邪神”。
而引荐(儿童)(的gc.get_referrers()
结果,由指定的对象类型的过滤)包含两个对象:甲list
包含字符串“亨丽埃塔古老一个”和string
亨丽埃塔古老一个。 (深度= 2和深度= 1点返回相同的结果。)
我怎样才能使一个对象为其莳萝可以返回:引荐的
- 两个不同的深度
- 两个所指 的不同深度