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

如何使用random函数随机执行其他函数?技术问题求助

问题分析与解决方法

你的代码核心问题是误将函数调用结果存入元组,而非函数本身。function()和functionb()会在定义元组c时直接执行,完全没等到随机选择的步骤,自然无法实现随机运行的效果。

正确写法示例

使用random模块

import random

def functiona():
    print("执行functiona")

def functionb():
    print("执行functionb")

def random_execute():
    # 存储函数对象(不带括号,代表函数本身)
    func_tuple = (functiona, functionb)
    # 随机选择一个函数对象
    chosen_func = random.SystemRandom().choice(func_tuple)
    # 调用选中的函数
    chosen_func()

# 测试执行
random_execute()

使用secrets模块

逻辑完全一致,仅替换随机选择的方法:

import secrets

def functiona():
    print("执行functiona")

def functionb():
    print("执行functionb")

def random_execute():
    func_tuple = (functiona, functionb)
    chosen_func = secrets.choice(func_tuple)
    chosen_func()

random_execute()

关键说明

  • 不带括号的函数名(如functiona)是函数对象,代表这个函数本身,可以被传递、选择;
  • 带括号的functiona()是函数调用,会立即执行函数并返回结果,无法用于后续的随机选择逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 14:06:18