函数(非常重要)

global和nonlocal关键字的使用

global是用在函数中修改全局变量中所定义的值,而nonlocal是使用在函数内部的不能使用在全局变量里面。

复制代码
x = 111


def index():
    global x
    x = 222


index()
print(x)
复制代码
复制代码
def index():
    x = 111

    def index1():
        nonlocal x
        x = 222

    index1()
    print(x)


index()
复制代码

 

函数对象(函数名)

函数可以被引用

复制代码
def index():
    print('form')


def index1():
    index()


index1()
复制代码

 

函数可以作为容器类型元素

复制代码
def index():
    print('form')


def index1():
    index()


d = {'index': index, 'len': max}
print(d)
复制代码

函数可以作为参数传给另一个参数

复制代码
def index():
    print('form')


def index1():
    index()


index1()
复制代码

函数的返回值可以使一个函数

复制代码
def index(x, y):
    print(x + y)


def index1():
    return index


res = index1()
res(1, 2)
复制代码

 

函数的嵌套调用

与上面函数可以被引用是一个道理,函数的代码块可以用其他函数名调用。

复制代码
def index():
    print('form')


def index1():
    index()


index1()
复制代码

 

函数的嵌套定义

在一个函数下运用多个函数,类似于for循环,可以从多个函数中调用。

复制代码
user_data_list = []


def all_func(type):
    def login():
        user_id = input('请输入用户编号:').strip()
        # 3.3 验证用户输入的编号是否已经存在
        for item in user_data_list:  # user_data_list = [{'user_id':1}, {'user_id':2}]
            # item => {'user_id':1}
            # item => {'user_id':2}
            # 判断用户数据的编号是否存在
            if user_id == item['user_id']:
                print('用户编号已经存在')
                break
        else:
            name = input('请输入用户姓名:').strip()
            age = input('请输入用户年龄:').strip()
            salary = input('请输入用户薪资:').strip()

            # 3.1 先定义一个空字典,用来存储用户的信息
            tmp = {'user_id': user_id, 'name': name, 'age': age, 'salary': salary}
            # tmp = {'user_id':1, 'name':'ly', 'age':18}

            # 3.2 把用户的个人信息放到空列表中
            user_data_list.append(tmp)
            print('添加用户:%s成功' % name)

    def delete():
        name1 = input('请输入你要删除的用户名:')
        for i, dic in enumerate(user_data_list):
            if dic['name'] == name1:
                user_data_list.pop(i)
                print('您已删除成功!,现在为%s:' % user_data_list)
                break
        else:
            print('你删除的用户不存在')

    if type == 1:
        login()
    elif type == 2:
        delete()
    else:
        print('输入有误')


all_func(1)
all_func(2)
复制代码

 

 

闭包函数

闭包函数就是将内部函数所要用的值写到外部函数中,使原有代码不变的情况下加新功能。并且原有函数调用不需要写任何参数 ,直接调用外部函数所传的参数。

内部函数调用外部函数的值,才能叫做闭包函数。

 

posted @   shangxin_bai  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示