问题1:具名元组作为函数的参数是按位置传递还是关键字传递?
虽然具名元组能通过属性名称获取变量,但本质还是元组,作为参数传递的时候是以位置信息为准的。
定义验证函数
def func_in_tuple(id,comp_name,publish_time):
print('id',id,end='')
print(' comp_name',comp_name,end='')
print(' publish_time',publish_time)
调用函数
DetailItem = collections.namedtuple('DetailItem', ('id', 'publish_time', 'comp_name',))
para_1= {'id':'1','publish_time':'2','comp_name':'3'}
item_1 = DetailItem('1','2','3')
func_in_tuple(*item_1)
运行结果:id 1 comp_name 2 publish_time 3
从结果可以看出*item_1解包的时候是按位置解包赋值的,要是想传递关键字参数还是要用字典处理。
para_1= {'id':'1','publish_time':'2','comp_name':'3'}
func_in_tuple(**para_1)
运行结果:id 1 comp_name 3 publish_time 2