PythonStudy——函数对象的案例

本文详细介绍了如何在Python中使用函数作为参数进行编程,通过具体的加法、减法和乘法运算实例,展示了高阶函数的灵活性和强大功能。文章还探讨了如何通过输入字符串指令来动态选择和调用不同的数学运算函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# part1

# 加法运算

def add(n1, n2):
    return n1 + n2

def low(n1, n2):
    return n1 - n2

# 四则运算

def computed(n1, n2, func):
    # if cmd == 'add':
    #     return add(n1, n2)
    # elif cmd == 'low':
    #     return n1 - n2
    return func(n1, n2)

r1 = computed(10, 20, add)
print(r1)
r2 = computed(10, 20, low)
print(r2)

 

# part2

def add(n1, n2):
    return n1 + n2

def low(n1, n2):
    return n1 - n2

def computed(n1, n2, func):
    return func(n1, n2)
# 测试
cmd = input('cmd: ')  # 只能等于字符串add、low => 什么方式可以将字符串add、low对应上函数
fn = None
if cmd == 'add':
    fn = add
elif cmd == 'low':
    fn = low
computed(10, 20, fn)
# 直接输入cmd 也及时传入了一个函数对象
# 测试
fn_map = {
    'add': add,
    'low': low
}

if cmd in fn_map:  # 作为容器的成员可以简化判断逻辑
    fn = fn_map[cmd]
    res = computed(10, 20, fn)
    print(res)
else:
    print('该运算暂不支持')

# part 3

def add(n1, n2):
    return n1 + n2

def low(n1, n2):
    return n1 - n2

def jump(n1, n2):
    return n1 * n2

def computed(n1, n2, func):
    return func(n1, n2)
fn_map = {
    'add': add,
    'low': low,
    'jump': jump
}

def get_fn(cmd):
    f = add  # 默认为add函数
    if cmd in fn_map:
        f = fn_map[cmd]  # 如果指令正确就返回对应的函数,如果不正确,就是采用默认的函数
    return f


while True: cmd = input('cmd: ') if cmd == 'q': break if cmd in fn_map: fn = fn_map[cmd] # 通过指令找函数 res = computed(10, 20, fn) print(res) else: print('该运算暂不支持')

 

转载于:https://www.cnblogs.com/tingguoguoyo/p/10779408.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值