我遇到了掌握面向对象的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是的。 –