论坛首页 编程语言技术论坛

python参数传递

浏览 1849 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2017-11-01  

              以前一直傻傻分不清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前加上**,让字典的每个键值对作为一个关键字传递给函数




论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics