定义函数:
一个无功能的函数:
def function():
pass # 这个函数是干什么的?
function() # 调用这个函数
一个简单的函数:
def function(a,b):
sum = a+b
return sum #函数的返回值,return不必须,没有return则返回一个None值
data = function(1,2) #将函数赋给data 最终意味着该函数return的sum值也赋给了data
tips:当程序执行到return的时候,程序将停止执行函数内余下的语句
函数中参数传递:
位置传递--数值
def function(a,b):
pass
function(1,2) #位置1对应a 位置2对应b 进行传递
位置传递--列表
list = [‘1‘,‘2‘,‘3‘]
def function(a):
pass
function(list) #将list传递给了a
def function(a,b,c):
pass
function(1,c=2,b=1) #构成的传递关系为a=1 b=1 c=2
def function(a,b,c=1): # 这里c=1就是默认值default,如果在参数传递没有涉及c则使用默认值1,如果涉及则使用涉及的新值
pass
function(1,b=1) #构成的传递关系为a=1 b=1 c=1
function(1,4,c=5) #构成的传递关系为a=1 b=1 c=5
包裹传递 (我们不清楚要传递多少个参数时,我们就将所有的参数包裹起来,整体传递)
def function(*data): # 一个*为了提醒python,这是一个元祖包裹传递 两个*则为字典包裹传递
pass
function(1,2,3,4,5,6,7,8,9) #构成的传递关系为将9个参数包裹至data里,并且根据位置合并成一个tuple
def function(**data): # **为了提醒python,这是一个字典包裹传递
pass
function(a=1,b=2,c=3) #构成的传递关系为将3个参数包裹至data里,并且根据a,b,c为key 1 2 3为value合并成一个dict
解包裹 (传入* 或者 ** 的tuple和dict,在函数内容中解开)
data = (1,2,3)
def function(a,b,c):
pass
function(*data) #构成的传递关系为将3个参数解开分配给a,b,c
tips:字典的解包裹原理一致
原文:https://www.cnblogs.com/zhouA/p/14480879.html