1

私は Sage でいくつかのコードを書いて、ファインマン グラフを使っていくつかの計算を行います。ファインマン グラフは、エッジ ラベルを持つ有限で無指向のマルチグラフです。クラスに不思議なことに欠けているエッジ縮小などのメソッドを実装する必要があります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 が他のグラフ理論パッケージの単なる Python ラッパーであることと関係があると思います。

お知らせ下さい。

4

1 に答える 1

3

物事を正しく継承していない可能性があります。の先頭にこれを挿入してみてください__init__():

super().__init__()
于 2011-03-25T03:46:37.800 に答える