我正在處理這個小類,玩@property裝飾器。由於某種原因,它不能正常工作。爲什麼我的@property裝飾器不工作?
class Card:
def __init__(self, rank, suit):
self.rank = rank
self.suit = suit
@property
def rank(self):
return self._rank
@rank.setter
def rank(self, value):
valid_ranks = ["2", "3", "4", "5", "6", "7", "8", "9", "J", "Q", "K", "A"]
if valid_ranks.index(value):
self._rank = value
@property
def suit(self):
return self._suit
@suit.setter
def suit(self,value):
self._suit = value
def show(self):
print "{}{}".format(self.rank, self.suit)
我初始化一個對象,像這樣:Card("cheese", "ball")
,想必這應該拋出一個錯誤。 Python很高興地隨身攜帶它,並指定「奶酪」來排名。這裏發生了什麼?所有其他通過賦值語法對等級制定者的調用似乎很樂意忽略我設置的制定者。我正在運行Python 2.7.5。
哎呦。當我看時,我沒有聽到。謝謝。 –