[問題] 字典使用@property裝飾器的問題
class Player():
def __init__(self):
self._age = 0
self._stats = {'PTS': 0, 'SCORE': 0}
@property
def age(self):
return self._age
@age.setter
def age(self, age):
if isinstance(age, int):
self._age = age
else:
self._age = 0
@property
def stats(self):
return self._stats
@stats.setter
def stats(self, val):
if isinstance(val, int):
self._stats = val
else:
self._stats = 0
p1 = Player()
p1.age = '-'
p1.stats['PTS'] = '-'
p1.stats['SCORE'] = 200
print(p1.age, p1.stats['PTS'], p1.stats['SCORE'])
輸出結果是
0 - 200
請問在age和stats的setter裡一樣做了型別的判斷
結果只有對age有用
stats一樣被寫入字串'-'
請問這是什麼原因
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.80.98 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1580807021.A.F7D.html
推
02/04 17:13,
5年前
, 1F
02/04 17:13, 1F
→
02/04 18:17,
5年前
, 2F
02/04 18:17, 2F
→
02/04 19:34,
5年前
, 3F
02/04 19:34, 3F
→
02/04 19:34,
5年前
, 4F
02/04 19:34, 4F
→
02/04 19:34,
5年前
, 5F
02/04 19:34, 5F
→
02/04 19:34,
5年前
, 6F
02/04 19:34, 6F
→
02/04 19:37,
5年前
, 7F
02/04 19:37, 7F
→
02/04 19:39,
5年前
, 8F
02/04 19:39, 8F
→
02/04 19:42,
5年前
, 9F
02/04 19:42, 9F
→
02/04 19:42,
5年前
, 10F
02/04 19:42, 10F
推
02/06 04:43,
5年前
, 11F
02/06 04:43, 11F
Python 近期熱門文章
PTT數位生活區 即時熱門文章