解包参数列表:
def send(*data):
for datum in data:
ser.write(datum)
与首先发送列表:
def send(data):
for datum in data:
ser.write(datum)
最佳答案
如果它简化了 API,否则您将总是必须传入一个列表:
send(something, otherthing)
对比:
send([something, otherthing])
您的常用参数取自不同的位置;例如something
和 otherthing
更有可能是单独的变量,而不是已经收集在一个列表中的变量。
Python 3.x print()
函数以及 os.path.join()
函数就是这样做的。在调用 API 之前,您很少会将所有打印参数或要加入的路径元素组合在一个列表中。
比较:
os.path.join(rootdirectory, relativepath, filename)
print('Debug information:', localvariable)
对比
os.path.join([rootdirectory, relativepath, filename])
print(['Debug information:', localvariable])
如果 .join()
或 print()
只接受一个位置参数(一个列表),API 的用户会发现自己键入 [
和 ]
括号一遍又一遍。
通过接受可变数量的位置参数,您可以为 API 的用户省去为函数调用创建列表的麻烦。在参数已经收集到列表中的极少数情况下,它们可以使用 *params
调用约定:
send(*params)
回应你的函数签名。
关于python - 为什么拆包比传入列表更受欢迎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13939156/