def 关键字 -- 定义
func 函数名 -- 和变量定义规则一样
()必须要写格式
: 声明语句结束
def my_len():
? 函数体
def func(a:int,b:str):
? print(a,b)
func(1,2)
? 1.减少代码重复性(冗余)
? 2.代码可读性高
? 3.将功能进行封装(造工具)
? 函数名+()
? 多次调用就是执行多次
? 可以循环使用
def func():
print("test")
func()
return 的内容返回给了函数的调用
return 返回一个内容(就是内容本身) 可以返回任意类型
return下方的代码不执行,终止这个函数
return 终止函数,切记不能终止循环
return 返回多个内容的时候是元组形式
return 没有写返回值的时候返回的是None,不写return返回的也是None
def yue(a,b,c=1): # 形参 c = 1是默认参数
? print("test")
yue(True,(1,),c=3) # 实参 位置参数 > 默认参数
函数的参数
形参:函数定义的时候叫做形参
? 位置参数
? 默认参数
? 混合参数
实参:函数调用的时候叫做实参
? 位置参数
? 关键字参数
? 混合参数
传参:将实参传递给形参的过程叫做传参
*args,**kwargs(能够接收函数的位置参数和动态的关键字参数)
定义阶段(*args,**kwargs) 聚合
? *args -- tuple
? **kwargs -- dict
使用阶段*args,*kwargs打散
? *args - 源数据类型
? *kwargs - 打散的是字典的键
优先级:位置 > 动态位置 > 默认 > 动态关键字
lst = [12,23,323,32,32,4]
def func(*args):
? print(*args)
func(lst[0],lst[1]) # 笨的方法
func(*lst)
"""
每次写函数的时候需要写注释
函数名.__doc__ 查看函数的注释
函数名.__name__ 查看函数的名字
"""
内置空间:python解释器自带的
全局空间:当前文件(.py文件)
局部空间:函数体开辟的空间
加载顺序:内置>全局>局部
取值顺序:局部>全局>内置
作用域:
全局作用域:内置+全局
局部作用域: 局部
函数中套函数
函数嵌套调用
函数嵌套参数的传递
函数嵌套返回值的传递
global:修改全局空间的变量对应的值
nonlocal:在外层的函数中,修改局部空间的变量值,完全不涉及全局变量,只修改离他最近的一层,最近的一层没有变量继续向上找,直到找到最外层函数
三元运算符
a = 10
b = 20
c = a if a > b else b
变量名 = 条件成立的结果 条件 条件不成立的结果
1.函数名指向的是函数的内存地址,加上()就执行这个函数
func()
2.函数名就是一个变量
age1 = 12
age2 = age1
age3 = age2
print(age3)
def fuc():
print(666)
f1 = fuc
f2 = f1
f2()
f1()
3.函数名可以作为容器类类型的元素
def func1():
print('in func1')
def func2():
print("in func2")
def func3():
print("in func3")
lst = [func1,func2,func3]
for i in lst:
i()
4.函数名可以作为函数的实参。
def func1():print("in func1")
def func2(argv):
argv()
print('in func2')
func2(func1)
5.函数名可以作为函数的返回值
def func1():
print("in func1")
def func2(argv):
print("in func2")
return argv
ret = func2(func1)
ret()
原文:https://www.cnblogs.com/alex3174/p/11203946.html