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

Python项目中如何创建声明时不自动执行的函数列表?

问题

我正在开发一个Python项目,需要从列表中随机选择一个函数执行,但声明函数列表时,函数会自动执行。请问有没有办法创建一个不会自动执行的函数列表?

示例代码:

import random
def a():
  global var
  var = 1
def b():
  global var
  var = 2
list = [a(), b()]
print(var)

运行结果:

>>> 2
解决方案

问题的核心是你在列表中写了a()和b()——带括号的写法会立即执行函数,并把函数的返回值(这里是None,因为函数没有return语句)存入列表。

要创建只存函数本身、不会自动执行的列表,只需去掉括号,把函数对象直接放进列表:

import random
def a():
  global var
  var = 1
def b():
  global var
  var = 2
# 存函数对象,不要加括号
func_list = [a, b]

# 随机选择函数并执行
chosen_func = random.choice(func_list)
chosen_func()  # 这里才主动调用函数
print(var)

这样修改后,列表里保存的是函数的引用,只有当你显式调用chosen_func()时,对应的函数才会运行,var的值会随机变成1或2。

另外建议不要用list作为变量名,这是Python的内置类名,会覆盖系统自带的list功能,改用func_list这类更清晰的名称更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:20:41