标签:可变长参数 在定义函数时 元组 global function 依次 local 不用 uil
1、减少重复代码
2、方便修改,更易拓展
3、保持代码一致性
def 函数名 ():
函数体
1、函数名必须以下划线或字母开头,可以包含字母、数字或下划线的任意组合,不能使用任何的标点符号。
2、函数名区分大小写
3、函数名不能是保留字
函数名()
在定义函数时将形参放在括号内。即def 函数名 (形参1 ,形参2,……)
def function (name ,age ): #定义函数
print(‘name is %s,age is %s‘%(name,age) #函数内容
function(‘tom‘,‘18‘) #调用函数,结果为name is tom,age is 18
def function (name ,age ): #定义函数
print(‘name is %s,age is %s‘%(name,age) #函数内容
function(age=‘18‘,name=‘tom‘) #调用函数,给形参赋值后,在传递形参值时,不用一一对应。结果为name is tom,age is 18
def function (name ,age ,sex=‘man‘):
print(‘name is %s,age is %s,is %s‘%(name,age,sex))
function(age=‘18‘,name=‘tom‘) #sex的值为默认值‘man’, name is tom,age is 18,is man
function(‘jim‘,‘20‘) # sex的值为默认值‘man’, name is jim,age is 20,is man
function(‘anna‘,‘20‘,‘woman‘) #sex的值为新赋值‘women’ ,name is anna,age is 20,is woman
参数前加一个“ * ”。
def add (*add): #定义函数add
print (add) #函数内容
add (1,2,3) #调用函数。结果为(1, 2, 3)
参数前加一个“ ** ”。如果是混合参数(既有元组转换的可变长参数,又有字典转换的可变长参数)时,需要将两种参数分开传递且元组转换的可变长参数必须放在前边,字典转换的可变长参数必须放在后面,如下:
def add (*add,**args): #定义函数
print (add,args) #函数内容
add (1,2,3,job=‘IT‘,hobby=‘sing‘) #调用函数(1, 2, 3){‘job‘: ‘IT‘, ‘hobby‘: ‘sing‘}
a) 结束函数
b) 返回某个对象
def add (*addS): #定义函数add
Sum = 0 #定义函数内容
for i in addS:
Sum += i
return Sum #设置返回值
A=add (1,2,3) #调用函数。并把返回值赋给A
print(A) #6
注意:
1.函数里如果没有return,会默认返回一个None。
2.如果return多个对象,那么Python会帮我们把多个对象封装成一个元组
Python中的作用域分4种情况:
L:local,局部作用域,即函数中定义的变量;
E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;
G:global,全局变量,就是模块级别定义的变量;
B:built-in,系统固定模块里面的变量,如int,byrearray等。搜索变量的优先级顺序依次是:局部作用域>外层作用域>当前模块中的全局变量>Python内置作用域,也就是LEGB.
x = int (2.9) #int built-in
g_count = 0 #global
def out ():
o_count = 1 #enclosing
def inner_1
():
i_count =2 #local
在函数外定义的变量为全局变量,在函数内定义的变量,如无特殊说明则为局部变量。在函数内可以调用全局变量但不可以更改全局变量的值。如需更改全局变量的值,则需在变量前加global声明是全局变量。
如果定义函数时又定义了内层函数,则需要用nonlocal声明。
conut=0
def outer():
conut=10
#print(conut)
def inner()
:
nonlocal conut
conut = 20
print(conut)
#return conut
inner()
outer()
标签:可变长参数 在定义函数时 元组 global function 依次 local 不用 uil
原文地址:http://www.cnblogs.com/xshan/p/7708650.html