MxL*_*evs 2 python function variadic-functions
我刚刚阅读了python中的*args和**kwargs表示法,并决定将它与我使用struct.pack的函数一起使用:
def pack_floats(*args):
return struct.pack('%df' %len(args), args)
但是,当然,它不起作用,因为args是一个元组.如果我想要打包三个号码,我会打电话给这个号码
struct.pack('3f', 1, 2, 3)
或者,我可以通过循环运行它并一次打包一个数字,但我不知道一次一个值与一次所有值之间是否存在任何性能差异.
有没有办法编写pack_floats函数而不在循环中调用pack函数?
>>> 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@'
Run Code Online (Sandbox Code Playgroud)