python 进阶函数-2 | 函数作为返回值与参数以及作用域

· Special

函数名补充

函数作为元素

函数元素应用场景


- 与字典绑定
    
    ```python
    def send_pic(path,content):
        pass
    
    def send_word(come,content):
        pass
    
    def send_audio(path,content):
        pass
    def send_video(path,content):
        pass
    
    func_list = [
        {'name':send_pic,'parameter':{'path':'a/1.jpg','content':'123'}},
        {'name':send_word,'parameter':{'come':'a/1.jpg','content':'123'}},
        {'name':send_audio,'parameter':{'path':'a/1.jpg','content':'123'}},
        {'name':send_video,'parameter':{'path':'a/1.jpg','content':'123'}},
    ]
    
    for item in func_list:
        func = item['name']
        parameter = item['parameter']
        func(**parameter)
    ```
    

### 函数赋值变量

> 函数名应避免重名与内置函数,否则覆盖
> 
- 变量可指向任意对象的地址
- 任意对象都有他的方法
    
    ```python
    def func(a,b):
        print(a,b)
    
    aa = func
    
    func(1,2)
    aa(1,2)
    
    ```
    

函数作为参数或返回值

函数作为参数

函数引用外部函数,修改内部数据。
#函数作为参数
def func_plus(a):
    return a+100

def func_exec(a):
    res = a(10)
    return res

data = func_exec(func_plus)
print(data)

函数作为返回值

函数返回其他函数,替身函数,修改外部数据
#函数作为返回值
def func_plus(a):
    return a+100

def func_handler():
    print('使用func_plus函数')
    return func_plus

data_source = func_handler()
data = data_source(10)
print(data)

return与print差别

print在过程展示,return返回给调用者
def add_func():
    print('123')

def inside_func(a):
    ret = a()
    return ret

v1 = inside_func(add_func)
print(v1)

函数作用域

python中以函数为作用域,其他语言以缩进{}为作用域

函数内部数据共享,函数内部符合作用域定义

#函数内部数据共享
def func_zone1():
    name = 'wupeiqi'
    age = 18
    print(age,name)

def func_zone2():
    age = 23
    name = 'alex'
    print(age,name)

func_zone1()
func_zone2()
#函数作用域
#函数内部不以缩进为作用域(适合其他语言),以函数内部为作用域
def func_zone1():
    name = 'wupeiqi'
    age = 18
    for num in range(age):
        final_num = num
    print(final_num)
    print(age,name)

函数全局变量和局部变量

#函数作用域调用
PUB_URL = 'https://123.com'
PUB_NAME = '123'
#优先调用函数内变量,函数中未定义函数从父级寻找
def public_func():
    a = [1,2,3]
    print(a)
    print(PUB_NAME)

public_func()

python


评论

行为验证™ 安全组件加载中...