函数的名称空间
函数的名称空间
- 内置空间:Python内置函数
- 全局空间:当前py 文件需要开辟的空间存放在全局空间
- 局部空间:函数中开辟 的空间就是局部空间
- 加载顺序:内置空间 >全局空间>局部空间
- 取值顺序:局部空间》全局空间》内置空间
- 作用域:
- 全局作用域:内置空间+全局空间
- 局部作用域:局部空间
函数的嵌套
- 函数中嵌套函数
- 函数中嵌套调用函数
- 函数嵌套参数的传递
- 函数嵌套返回值的传递
- 不管在什么位置,只要是函数名+(),就是在调用次函数
- 函数调用执行后,函数体中开辟的空间就自行销毁了
函数的gloabal
- 修改全局空间的变量对应的值
函数的nonlocal
- 在外层的函数中,修改局部空间的变量的值,完全不涉及全局变量。
- 值修改离他最近的一层,最近的一层没有变量继续向上寻找,知道找到最外层的函数
函数的注释
-
# def func(a,b): # """ # 逻辑判断... # :param a: str # :param b: int # :return: bool # """ # print(a,b) # def func1(user,password): # """ # 密码加密 # :param user: 用户名 str # :param password: 密码 str # :return: 加密的密码 MD5 # """ # print(user,password) # print(func.__doc__) # print(func1.__doc__) # print(func.__name__)
-
每次写函数的时候需要注释
-
函数名+ doc
函数名的使用
1,方式
-
可以当做赋值给变量
-
def func(): print(1) s = func() print(s)
-
可以当做元素放在列表中
-
def func(): print(1) lis = [func,func,func] func() print(lis) for i in lis: i()
-
可以当做函数的参数
-
def func(f): f() def foo(): print(123) func(foo)
-
函数名可以当做函数的返回值
-
def func(): def foo(): print(123) return foo a = func() a()
-
print(f"{{73}}") # {73} print(f"{{{73}}}") # {73} print(f"{{{{73}}}}") # {{73}} m = 21 # ! , : { } ;这些标点不能出现在{} 这里面。 # print(f'{;12}') # 报错 # 所以使用lambda 表达式会出现一些问题。 # 解决方式:可将lambda嵌套在圆括号里面解决此问题。 x = 5 print(f'{(lambda x: x*2) (x)}') # 10
希望你眼眸有星辰,心中有山海,从此以梦为马,不负韶华