带有约束的Python类实例化



假设我想创建一个名为Vector的python类(这只是一个玩具示例(。我会写以下内容:

class Vector:
def __init__(self, dimension, coordinates):
self.dimension = dimension
self.coordinates = coordinates
vec = Vector(3, [10, 20, 30])

现在假设我写vec = Vector(3,[10, 20, 30, 40]),我想要的是一个形式为"invalid vector dimension"的错误。

换句话说,第一个参数应该等于第二个参数的长度。

我意识到这在这里没有多大意义,但再次强调,这只是一个玩具的例子。

你可以试试这个:

class Vector:
def __init__(self, dimension, coordinates):
if len(coordinates) != dimension: raise ValueError("Coordinates doesn't match dimension")
self.dimension = dimension
self.coordinates = coordinates

如果你不看评论,@JeffUK指出:

将其作为一行代码执行,有助于在回溯中显示检查

最新更新