调用函数的一些技巧

无参函数

案例1

优化前的代码

def send_msg():
    """发送短信"""
    pass

def send_email():
    """发送图片"""
    pass

def send_wechat():
    """发送微信"""
    
# 执行函数
send_msg()
send_email()
send_wechat()

优化后的代码

def send_msg():
    """发送短信"""
    pass


def send_email():
    """发送图片"""
    pass


def send_wechat():
    """发送微信"""
    pass


func_list = [send_msg, send_email, send_wechat]
for func in func_list:
    func()

案例2

优化前的代码

def register():
    """注册功能"""
    print("注册功能运行了")


def login():
    """登录功能"""
    print("登录功能运行了")


def show_all_users():
    """查看全部用户"""
    print("查看全部用户功能运行了")


def remove_user():
    """删除用户"""
    print("删除用户功能运行了")


print("请选择:1.注册 2.登录 3.查看全部用户 4.删除用户:")
choice = input("请输入选择的序号:")

if choice == "1":
    register()
elif choice == "2":
    login()
elif choice == "3":
    show_all_users()
elif choice == "4":
    remove_user()
else:
    print("输入错误")

优化后的代码

def register():
    """注册功能"""
    print("注册功能运行了")


def login():
    """登录功能"""
    print("登录功能运行了")


def show_all_users():
    """查看全部用户"""
    print("查看全部用户功能运行了")


def remove_user():
    """删除用户"""
    print("删除用户功能运行了")


function_dict = {
    "1": register,
    "2": login,
    "3": show_all_users,
    "4": remove_user
}

print("请选择:1.注册 2.登录 3.查看全部用户 4.删除用户:")
choice = input("请输入选择的序号:")

func = function_dict.get(choice)
if not func:
    print("输入错误")
else:
    func()  # 执行函数

有参函数

案例1

def send_message(phone, content):
    """发送消息"""
    pass


def send_image(img_path, content):
    """发送图片"""
    pass


def send_emoji(emoji):
    """发送表情"""
    pass


def send_file(path):
    """发送文件"""
    pass


function_dict = {
    "1": [send_message, ["123456789", "你好呀,我是小满!"]],
    "2": [send_image, ["xxx/xx/x.jpg", "消息内容"]],
    "3": [send_emoji, ["😻"]],
    "4": [send_file, ["xx.zip"]]
}

print("欢迎使用xx系统")
print("请选择:1.发送消息 2.发送图片 3.发送表情 4.发送给文件")
choice = input("请输入选择的序号:")

item = function_dict.get(choice)  # ["123456789", "你好呀,我是小满!"]]
if not item:
    print("输入错误")
else:
    # 执行函数
    func = item[0]  # send_message
    param_list = item[1]  # ["123456789", "你好呀,我是小满!"]

    func(*param_list)  # send_message(*["123456789", "你好呀,我是小满!"])

案例2

def send_msg(mobile, content):
    """发送短信"""
    pass


def send_email(to_email, subject, content):
    """发送邮件"""
    pass


def send_wechat(user_id, content):
    """发送微信"""
    pass


func_list = [
    {"name": send_msg, "params": {"mobile": "123456789", "content": "你好呀,我是小满!"}},
    {"name": send_email, "params": {"to_email": "xxx@126.com", "subject": "报警消息", "content": "服务器又被DDOS了"}},
    {"name": send_wechat, "params": {"user_id": "007", "content": "报告夫子!小满又在摸鱼了..."}}
]

# {"name": send_msg, "params": {"mobile": "123456789", "content": "你好呀,我是小满!"}}
for item in func_list:
    func = item["name"]  # send_msg
    param_dict = item["params"]  # {"mobile": "123456789", "content": "你好呀,我是小满!"}
    func(**param_dict)  # send_msg(**{"mobile": "123456789", "content": "你好呀,我是小满!"})

posted @ 2023-12-08 16:31  小满三岁啦  阅读(9)  评论(0编辑  收藏  举报