You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字典仅执行指定值的方法求助(兼容Python3.4)

问题分析与解决方案

你的问题出在字典初始化阶段:当前代码里print('so much cpu')是直接执行函数调用,所以字典创建时所有print语句都会立即运行,和后续是否访问键无关。

修正方案(兼容Python3.4)

核心思路是把字典的值存储为函数对象(而非函数执行结果),只有当你需要执行时才主动调用它。

方案1:定义独立函数(适合复杂逻辑)

def handle_cpu():
    print('so much cpu')

def handle_user():
    print('so much users')

# 字典存储函数引用,不要加括号调用
all_commands = {
    'cpu': handle_cpu,
    'user': handle_user
}

# 执行指定操作
if args[0] in all_commands:
    all_commands[args[0]]()  # 加括号才会执行函数

方案2:使用lambda(适合简单单行逻辑)

如果逻辑很简短,用lambda可以省去单独定义函数的步骤:

all_commands = {
    'cpu': lambda: print('so much cpu'),
    'user': lambda: print('so much users')
}

# 执行指定操作
if args[0] in all_commands:
    all_commands[args[0]]()

额外注意

你原代码里有个笔误:all_show.keys()和all_show[args[0]]应该改成all_commands,和字典变量名保持一致。

内容的提问来源于stack exchange,提问作者DeviC3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 01:06:30