我正在处理这个小类,玩@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。
哎呦。当我看时,我没有听到。谢谢。 –