我刚刚阅读了 python 中的 *args 和 **kwargs 符号,并决定将它与我使用 struct.pack 的函数一起使用:
def pack_floats(*args): return struct.pack('%df' %len(args), args)
当然,它不起作用,因为 args 是一个元组。如果我想打包三个数字,我会这样调用 pack
struct.pack('3f', 1, 2, 3)
或者,我可以通过一个循环运行它并一次打包一个数字,但我不知道一次一个值与一次所有值之间是否存在任何性能差异。
有没有一种方法可以在不在循环内调用 pack 函数的情况下编写 pack_floats 函数?
最佳答案
>>> import struct
>>> def pack_floats(*args):
... return struct.pack('%df' %len(args), *args)
...
>>> pack_floats(0.1,1.2,2.3)
'\xcd\xcc\xcc=\x9a\x99\x99?33\x13@'
关于python - 在 struct.pack 中使用 *args,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791050/