Python 不同的类参数

Python different class parameters

提问人:Jacob Morrison 提问时间:5/26/2022 更新时间:5/26/2022 访问量:28

问:

我有一个 PointND 类,它表示 N 维空间中的一个点。我希望能够给它一个输入列表:,并给它一个输入列表:。有没有办法做到这一点,如果有,如何做到?PointND([1,2,3,4])PointND(1, 2, 3, 4)

python 参数 传递

评论

0赞 juanpa.arrivillaga 5/26/2022
您必须使用类似的东西并检查输入类型,例如 和 assume 是单个整数。*argsif len(args) == 1 and isinstance(args[0], list): ... # handle list inputelse: args
1赞 juanpa.arrivillaga 5/26/2022
老实说,您可能不应该这样做,只需接受,由呼叫者使用*argsPointND(*some_list)
0赞 Barmar 5/26/2022
@juanpa.arrivillaga 标准和功能是这样工作的。它避免了创建不必要的列表,例如当您只想获得 2 个变量的最大值时。max()min()max([a, b])
0赞 Anentropic 5/26/2022
@Barmar方式和工作的好处不是你不必创建一个列表(接受也提供了这个好处),而是如果你有一个可迭代对象,你不必解开它......如果可迭代对象产生大量值,这可能会节省内存(因为我假设 min/max 可以在迭代时丢弃除当前 min/max 之外的所有值......而如果你解开它,你已经将所有值具体化为vars)minmax*args
0赞 Barmar 5/26/2022
@Anentropic 这对这两种情况都有帮助。无论如何,同样的考虑可能适用于OP的功能。

答: 暂无答案