python参数传递

              以前一直傻傻分不清Python在传递参数时的 * 和 ** 的区别。 一看到* 和** 就想到指针的概念。 今天总算是搞明白了。记录一下

# -*- coding:utf-8 -*-

'''
参数传递:
包裹传参

'''

'''
包裹位置传参:收集到的是一个元组
'''
def package_position(* all_arguments):
print all_arguments
#打印结果为 (1, 4, 6)
for k in all_arguments:
print k
 

'''
包裹关键字传参:收集到的是一个字典
'''
def package_keyword(** all_arguments):
print all_arguments
#打印结果为 {'a': 1, 'c': 3, 'b': 2}
#打印k,v
for k,v in all_arguments.items():
all_arguments[k] = v + 1

'''
位置传参和关键字传参混合使用
'''
def packeage_min(* position,** keywords):
print position
print keywords

#打印结果
#(1, 2, 3)
#{'a': 7, 'c': 9, 'b': 8}


'''
解包裹
'''
def unpackage( a, b, c):
print (a,b,c)



if __name__ == '__main__':
#package_position(1,4,6)
args2={ 'a': 4, 'b': 5, 'c': 6}
package_keyword(**args2)
#packeage_min(1,2,3,a=7,b=8,c=9)
args = ( 1, 3, 4)
#unpackage(*args) #在args前加上*,来提醒Python,我想把元组拆成三个元素,每个元素对应函数的一个位置参数
args2={ 'a': 4, 'b': 5, 'c': 6}
#unpackage(**args2) #在args2前加上**,让字典的每个键值对作为一个关键字传递给函数




猜你喜欢

转载自listen-raining.iteye.com/blog/2398336