假设我有一个西服类和西服的四个子类:Heart,Spade,Diamond,Club。
class Suit:
...
class Heart(Suit):
...
class Spade(Suit):
...
class Diamond(Suit):
...
class Club(Suit):
...
我有一个方法,该方法接收西装作为参数,这是一个类对象,而不是实例。更准确地说,它可能仅接收以下四个值之一:Heart,Spade,Diamond,Club。我该如何做出保证这种事情的断言?就像是:
def my_method(suit):
assert(suit subclass of Suit)
...
我正在使用Python 3。
@snakile是的,目前尚不清楚。由于依赖于任何人的自我表达的正确性,在这个话题上是薄冰。许多新来者无法理解一切都是Python中的对象,可能会表达一件事,但又想到了另一件事。这是现实,并且除了纯粹性之外,期待新手的这种行为是很合理的。留下声誉是唯一直接的暗示,无论您在这里的表达是正确的,还是我应该说“正确性”。我理解希望考虑到您的知识的愿望,但不考虑不断更新的新来者仍然是不合理的。
—
n611x007 2014年
建议在示例代码中添加四行
—
Bob Stein
my_method(Heart)
my_method(Spade)
...
my_method
作为参数获得的四个值到底是什么:“它可能只接收四个值之一:Heart,Spade,Diamond,Club”。这些值是类对象,而不是类实例。对我来说似乎很清楚,尽管我认为您对模糊性是正确的,因为答案确实涵盖了这两种可能性。如果您的字眼更清晰,欢迎您编辑问题。感谢您的评论。