2016-09-21 7 views
-1

インポートするクラスにメソッドを追加しようとしています。私の猿のパッチがうまくいかないのはなぜですか?

これは私のコードです:

from pyrser.parsing import node 

def to_dxml(self): 
    return "test" 

node.Node().to_dxml = to_dxml 

tree = node.Node() 
tree.ls = [1, 2.0, "titi", True, [2, 3, 4, [3, [3, 4]], 5]] 
tree.dct = {"g":1, "y":2, "koko":{'D', 'T', 'C'}} 
tree.aset = {'Z', 'X', 'T', 'U'} 
tree.ablob = b'\xFF\xaa\x06Th -}' 
print(tree.to_dxml()) 

しかし、私はそれを実行したとき、私は

AttributeError: 'Node' object has no attribute 'to_dxml' 

それが機能しない理由の任意のアイデアを得ますか?

+3

あるべき 'node.Nodeは() 'がクラスにゼロ効果を有することをインスタンスに属性を追加して、インスタンスを作成します。 –

答えて

6

オブジェクトではなくクラスに属性を追加する必要があります。

node.Node().to_dxml = to_dxml 

node.Node.to_dxml = to_dxml 
関連する問題