3
class Card():
def __init__(self, val):
self.val = val
c = Card(1)
d = -c
我認爲d
是一個Card
對象和d.val
是-1。我該怎麼做?我如何重載Python中的一元負(負)運算符?
class Card():
def __init__(self, val):
self.val = val
c = Card(1)
d = -c
我認爲d
是一個Card
對象和d.val
是-1。我該怎麼做?我如何重載Python中的一元負(負)運算符?
聽起來好像你想讓Card
上的一元減法運算符返回一個新的卡片,其值爲否定。如果這是你想要的,你可以在你的類定義__neg__
操作是這樣的:
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
我怎樣才能知道所有預定義的函數,比如__neg__? –
很有幫助:) –
這在Python文檔中描述了用於模擬數字類型。你詢問的操作是「一元減號」。一元意義它作用於一個操作數。)https://docs.python.org/2.7/reference/datamodel.html#special-method-names –