我正在Sage中编写一些代码,用Feynman图进行一些计算,这些图只是带有边标签的有限,无定向多图。我需要实现边缘收缩等方法,这些方法在类sage.graphs.graph.Graph
中奇怪地缺失。但是我也希望继承所有现有的图形方法,例如is_tree
。
这是应该附加新课程的Feynman.sage模块的顶部。
from sage.graphs.graph import Graph
class FeynmanGraph(Graph):
"""An unoriented multi-graph with labeled edges"""
def __init__(self, E=[]):
self._edges = len(E)
def __repr__(self):
return 'A Feynman graph with ' + str(self._edges) + ' edges.'
我做的不对。尽管该类的实例化产生了正确的方法目录,但是其中许多方法不起作用,因为
'FeynmanGraph' object has no attribute '_backend'
我认为这与Sage只是其他图形理论包的Pythonic包装器的方式有关。
请告知。
答案 0 :(得分:3)
你可能根本就没有正确地继承东西。尝试在__init__()
:
super().__init__()