我在python继承方面遇到了问题。你知道吗
这个例子只概述了层次结构,对于一个更复杂的代码,我不能在这里发布,所以请耐心等待,我会给你所有需要的细节。你知道吗
我定义了两个类:
class A(pydot.Node):
def __init__(self):
# do some init
pydot.Node.__init__(self)
def very_useful_method(self):
return self._valuable_property
class B(A):
def __init__(self):
# do some initialization
A.__init__(self)
if "__main__" == __name__
# some code that uses add_node and get_nodes
retrieved_b_instance.very_useful_method() #error, **Node** object has no attribute very_useful_method...
我确信我没有正确地执行继承过程,而且我在__init__
调用中做了一些错误的事情。你知道吗
我使用的是python2.7。你知道吗
有什么建议吗?你知道吗
跟踪:
Traceback (most recent call last):
File "/home/reuts/PycharmProjects/AI4/Ex4_pydot.py", line 399, in <module>
driver.interact()
File "/home/reuts/PycharmProjects/AI4/Ex4_pydot.py", line 362, in interact
self.parse_command(cmd)
File "/home/reuts/PycharmProjects/AI4/Ex4_pydot.py", line 354, in parse_command
options[args[0]]()
File "/home/reuts/PycharmProjects/AI4/Ex4_pydot.py", line 344, in print_report
print "node cpt: %s" % node.get_cpt()
AttributeError: 'Node' object has no attribute 'get_cpt'
Node是pydot实现的基类(pydot.节点)除此之外,我在继承时还使用了两个类pydot.节点. 你知道吗
我现在已经检查了中的代码pydot.py公司我怀疑那里有一个转变。来自Java和静态类型的背景,我对get\u node\u list()中的操作及其对返回实例类型的影响理解缓慢。你知道吗
我可能发现了错误。显然
pydot.Node
有一个方法没有返回我期望的结果(pydot
是一个图形实现)。你知道吗实际的节点存储为字符串,
get_nodes()
方法为每个get_nodes
调用重新生成它们,这会导致pydot.Node
类的任何扩展如果稍后通过get_nodes
使用,实际上毫无意义。你知道吗更新:解决方法
我发现在与实现交互时保存数据的方法是使用
Node
实例的obj_dict
属性,该属性通过图的obj_dict['nodes']
obj_dict
元素还原(为所有添加的节点保存…)相关问题 更多 >
编程相关推荐