python装饰器练习

Posted ychdzx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python装饰器练习相关的知识,希望对你有一定的参考价值。

‘‘‘
名片管理系统

名片包含的信息有: 姓名,电话
功能要求:
1、增删改查
2、显示所有信息
‘‘‘
info_dict = {}


def add_info():
    new_info = input(‘请依次输入联系人的姓名、电话,并以’,‘ 号隔开‘)
    new_list = new_info.split(‘,‘)
    info_dict[new_list[0]] = new_list[1]


# 删除、修改都需要用到查询,这里用到的数据结构是字典,所以直接用dict的操作函数即可
def find_info(fn):
    def inner(info_key):
        # info_key = input(‘输入要进行操做的姓名:‘)
        if info_key in info_dict:
            print(‘查到的联系人:{},电话:{}‘.format(info_key, info_dict[info_key]))
            fn(info_key)
        else:
            print(‘没有这个人‘)

    return inner


@find_info
def delete_ele(info_key):
    info_dict.pop(info_key)


@find_info
def change_ele(info_key):
    phone = input(‘请输入新的联系方式:‘)
    info_dict[info_key] = phone


@find_info
def find_ele(info_key):
    pass


while True:
    print(‘1、添加‘)
    print(‘2、删除‘)
    print(‘3、修改‘)
    print(‘4、查询‘)
    print(‘5、所有内容‘)
    print(‘6、退出‘)
    i = int(input(‘请输入要进行的操作:‘))
    if i == 1:
        add_info()
        continue
    elif i == 2:
        info_key = input(‘输入要进行删除的姓名:‘)
        delete_ele(info_key)
        continue
    elif i == 3:
        info_key = input(‘输入要进行修改的姓名:‘)
        change_ele(info_key)
        continue
    elif i == 4:
        info_key = input(‘输入要进行查询的姓名:‘)
        find_ele(info_key)
        continue
    elif i == 5:
        print(info_dict)
        continue
    elif i == 6:
        conditions = input(‘确定要退出系统嘛?(输入yes or no)‘)
        if conditions.lower() == ‘yes‘:
            break
        elif conditions.lower() == ‘no‘:
            continue
    else:
        continue

以上是关于python装饰器练习的主要内容,如果未能解决你的问题,请参考以下文章

Python小程序练习二之装饰器小例子

Python练习-装饰器版-为什么我的用户总被锁定

Python-23_装饰器-04_练习---无参装饰器有参装饰器

关于装饰器的两个小练习

python装饰器练习

python--------------装饰器练习