1
11
您可以尝试使用type.mro()方法来查找方法的解析顺序。
或
编辑:我以为你想做这样的事……
|
2
2
也许你可以进一步澄清你在寻找什么? 目前,您的描述根本无法描述Python。假设在您的示例中,a、b和c是类的名称:
然后可以创建一个运行时实例:
如果您查看运行时对象的字典,那么它本身的变量和属于它的超类的变量之间没有区别。例如: 迪尔(B)
所以你的问题的直接答案是它已经像那样工作了,但是我怀疑这对你没有什么帮助。不显示的是方法,因为它们是类命名空间中的条目,而变量位于对象的命名空间中。如果要在超类中查找方法,请使用前面的回复中描述的mro()调用,然后查看列表中类的名称空间。 当我四处寻找执行JSON序列化的简单方法时,我在pickle模块中发现了一些有趣的东西。一个建议是,您可能希望pickle/unpickle对象,而不是编写自己的来遍历层次结构。pickle输出是一个ASCII流,您可以更容易地将其来回转换为JSON。PEP 307中有一些起点。
另一个建议是看一下
|
3
0
如果你只需要一棵树(而不是钻石形状的继承),有一个简单的方法可以做到。用嵌套的分支列表表示树
然后,通过定义递归函数:
您可以获得继承树:
这很容易序列化,因为它只是一个列表。如果只需要名称,请替换
对于反序列化,您必须从文本中获取类。如果您需要更多帮助,请提供问题的详细信息。 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |
jkone27 · F#-在编译时从字符串生成简单的空类型 6 年前 |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
Randall Flagg · 访问propertyinfo中的属性 6 年前 |
Kacper · 在反映的全名和成员c后的“*”中,“+”是什么意思# 6 年前 |
tobeypeters · 反射铸造 6 年前 |
myst02 · 如何在另一个方法之后调用该方法? 6 年前 |