- 函数参数加*号,代表将多个参数组装成列表
- 数组前面加参数,代表把数组拆分成多个逗号分割的变量,类似js中的展开符号...
# coding=utf-8
# from concurrent.futures import ThreadPoolExecutor
import threading
import datetime
gLock = threading.Lock()
def getTime():
global gLock
gLock.acquire()
now = datetime.datetime.now()
tm = ":".join([str(now.day).zfill(2), str(now.hour).zfill(2), str(now.minute).zfill(2),
str(now.second).zfill(2), str(now.microsecond)])
gLock.release()
return tm
# 函数参数加*号,代表将多个参数组装成列表
def log(*msg):
tm = getTime()
global gLock
gLock.acquire()
# 数组前面加参数,代表把数组拆分成多个逗号分割的变量,类似js中的展开符号...
text = ",".join([tm, " ", *msg])
print(text)
gLock.release()
if __name__ == '__main__':
log('ni', 'hhao', 'ma') # 06:14:23:35:586457, ,ni,hhao,ma
结果:
06:14:23:35:586457, ,ni,hhao,ma
参考:https://blog.csdn.net/weixin_36815313/article/details/108569787
类似与js中的展开符号...
列表前面加星号作用是将列表中所有元素解开成独立的参数,传入函数,参数数量等于len(data)
字典前面加两个星号,是将字典解开成独立的元素作为形参。
def add(a, b):
return a+b
data = [4,3]
print add(*data)
>>> 7
#equals to print add(4, 3)
data = {'a' : 4, 'b' : 3}
print add(**data)
>>> 7
#equals to print add(4, 3)