我遇到了掌握面向對象的Python中的代碼片段。映射到工廠函數中的值元組說明
我不明白第2行的語法。我知道rank_str是一個字典。什麼是class_,
語法,它在做什麼?
我不明白的其他部分是在第8行。如果class_是一個類,那麼爲什麼在構造函數中不需要suit
?是因爲* Card類在構造函數中將它作爲參數嗎?
1. def card(rank, suit):
2. class_, rank_str= {
3. 1: (AceCard,'A'),
4. 11: (FaceCard,'J'),
5. 12: (FaceCard,'Q'),
6. 13: (FaceCard,'K'),
7. }.get(rank, (NumberCard, str(rank)))
8. return class_(rank_str, suit)
您是否閱讀過['dict.get()'](https://docs.python.org/2/library/stdtypes.html#dict.get)方法的文檔? – martineau
@martineau是的。 –