目录python
*形参
app
接收多余的位置实参,以元组形式保存函数
**形参
code
接收多余的关键字实参,以字典形式保存对象
*实参
生命周期
将元组类型打散,传给*形参作用域
**实参
it
将字典类型打散,传给**形参io
能够做为引用function
x = 'hello nick' y = x f = func print(f)
做为容器元素
l = [x] function_list = [func] function_list[0]()
做为函数参数
len(x) def foo(m): m() foo(func)
做为函数函数返回值
def foo(x): return x res = foo(func) print(res) res()
打印九九乘法表
for i in range(1,10): for j in range(1,i+1): print(f"{i}*{j}={i*j}",end="") print()
放置内置方法
生命周期:在解释器启动时生效,在解释器关闭时失效
函数中定义的变量和函数
生命周期:在函数调用期间生效,执行结束失效
除了内置和局部都放在全局名称空间
生命周期:在文件执行时生效,文件结束后失效
内置--》全局--》局部
从当前位置 局部--》全局--》内置
全局有效,全局存活
临时存储,只包含局部名称空间
修改全局做用域中的变量。
x = 1 def f1(): x = 2 def f2(): global x # 修改全局 x = 3 f2() f1() print(x)
x = 1 def f1(): x = 2 def f2(): nonlocal x x = 3 f2() print(x) f1()
在局部想要修改全局的可变类型,不须要任何声明,能够直接修改。
在局部若是想要修改全局的不可变类型,须要借助global声明,声明为全局的变量,便可直接修改。
lis = [] def f1(): lis.append(1) print(f"调用函数前: {lis}") f1() print(f"调用函数后: {lis}")