2017-08-02 5 views

答えて

10

Cardの単項マイナス演算子で、値がネゲートされた新しいカードを返すように思えます。

class Card: 
    def __init__(self, val): 
     self.val = val 
    def __neg__(self): 
     return Card(-self.val) 

__neg__ここで算術演算をカスタマイズするためにオーバーライドできるメソッドのリストに含まれています:https://docs.python.org/3/reference/datamodel.html#emulating-numeric-types

+0

どのようにすることができますそれはあなたが望むなら、あなたはこのようなあなたのクラスの__neg__オペレータが定義することができます__neg__などの定義済みの関数をすべて知っていますか? –

+0

かなり役に立ちます:) –

+0

これは、数値型をエミュレートするためのPythonのドキュメントに記述されています。あなたが質問した操作は「単項マイナス」です。単項演算は1つのオペランドで動作することを意味します)。https://docs.python.org/2.7/reference/datamodel.html#special-method-names –

関連する問題