Python - 创建新实例时如何处理错误参数?

Python - How to handle bad parameters when creating new instance?

创建 class 的新实例时处理错误参数的首选方法是什么?

例如,在纸牌游戏中,我可能有一张纸牌 class,在创建新实例时可以将梅花、红心、方块或黑桃作为花色(以及值)。我如何处理有人通过它 'Kitten' 作为花色?

我是 Python 的新手,但了解一点 Objective-C 和 Swift,我认为在这些语言中,您可以将套装设为枚举,编译器可能选择不正确的值,或者您可以 return nil (Ocj-C) 或来自卡片初始化的可选值 (swift) class.

我知道你不能 return 'nil' in Python (即不创建实例)所以也许我应该 return 'None' 适合(或任何受影响的成员)甚至抛出异常?还是我应该先验证输入?

class __init__ 方法应该引发 ValueError 如果给出的东西不正确。如有疑问,请查看 Zen of Python -- Errors should never pass silently.