函数
# 函数
# 语法
def fun():
pass
return 1, 2, 3
# return
# 没有返回值--返回None
# 不写return
# 只写return,作为结束函数
# return None
# 只有一个返回值
# 可以返回任何数据类型
# 可以接受
# 如果有多个,只执行一个
# 返回多个值
# 用一个变量接收,得到的为一个元组
# 有几个返回值 用几个变量接收
# 参数
# 动态参数:
# *args 接收的是按照位置传参的值,可以任意类型,组织成一个元组
# **kwargs 接收的是按照关键字传参,组织成一个字典
# 传参:若实参为一个序列,形参若为*args,给实参序列上加*号传入;
# 实参为一个字典,形参若为 传入时,加上**号,则相当于一个一个的传入。
# 如果默认参数是一个可变数据类型,每一次调用时,如果不传参就共用该数据类型
def func(l=[]):
l.append(1)
print(l)
func()
func()
fucn()
# 三元表达式
a = 1
b = 3
c = a if a > b else b
# 命名空间
# 内置命名空间:
# 内置的名字函数如len(),print
# 全局命名空间
# 局部命名空间
# 函数内部定义的名字
# 当函数调用时,才会产生,当函数执行结束,这个命名空间消失
# 调用顺序
# 局部命名空间 ->全局命名空间 ->内置命名空间
# 作用域
# 全局作用域:包含全局命名空间和内置命名空间
# 局部作用域:函数,类等
# 局部只能查看全局变量,不能直接修改,若进行修改,需要提前声明global,
# 此时该变量变为全局变量
# print(locals())根据所处位置,可查看所处位置的命名
# print(globals())可查看全局的命名
# a = 1
# def func():
# global a
# a += 1
# func()
# print(a)
# nonlocal 只能用于局部变量,找上层离当前函数最近一层的局部变量,
# 可修改该上层变量,不会修改全局变量
# def outer():
# a = 1
# def inner():
# nonlocal a
# a += 1
# print('inner',a)
# print('inner')
# inner()
# print('outer', a)
#
# outer()
# 函数不加括号(),即内存地址,加()则调用该内存地址,即调用该函数
# 函数可以赋值 func2 = func func2()
# 函数可以作为容器类型的元素 li = [func,func2] for i in li: i()
# 函数名可以作为函数参数
# 闭包:嵌套的函数且内部函数调用外部函数的变量,延长变量的使用周期
def outer():
a = 1
def inner():
print(a)
return inner
inn = outer()
inn()
talk is cheap show me the code

浙公网安备 33010602011771号