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

Python随机调用函数出错:输出全部内容且报Nonetype错误如何修复?

问题修复方案

你的代码出现问题的核心原因是:创建元组l时,你写了print1()、print2()、print3()——加括号意味着立即调用这些函数,而这三个函数没有返回值(默认返回None),所以元组里实际存储的是三个None。

这就导致两个问题:

  • 程序运行时会先执行所有函数,直接输出1、2、3
  • 用random.choice选中的是None,调用x()自然会抛出'NoneType' object is not callable的异常

修复方法

把元组里的函数调用改为函数对象本身,也就是去掉括号,让元组存储函数的引用而非执行结果:

import random

def print1():
    print(1)
def print2():
    print(2)
def print3():
    print(3)

# 存储函数对象,不要加括号执行
l = (print1, print2, print3)
x = random.choice(l)
x()

修改后,程序会随机选择三个函数中的一个执行,只会输出1、2、3中的某一个,不会再触发异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 09:57:37