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

Python中如何检测函数是否在Shell中被调用?含随机事实函数相关问题

实现代码及说明

1 基础功能修复

你当前编写的函数已经完成了随机事实的抽取逻辑,但缺少结果输出/返回步骤,补充后可正常使用,同时内置调用状态检测能力:

import random
import sys

# 模块级全局变量,用于记录函数是否被调用过
FACT_FUNC_CALLED = False

def FACT_FUNCTION():
    global FACT_FUNC_CALLED
    # 触发调用后修改标记状态
    FACT_FUNC_CALLED = True
    
    fact_list = [
        "阿尔伯特·爱因斯坦提出了相对论",
        "一百米短跑的世界纪录是9.58秒",
        "苹果公司的创始人是史蒂夫·乔布斯",
        "谷歌现任CEO是桑达尔·皮查伊"
    ]
    selected_fact = random.choice(fact_list)
    
    # 内置检测:判断当前是否在交互式Shell环境中调用
    in_interactive_shell = not hasattr(sys.modules['__main__'], '__file__')
    if in_interactive_shell:
        print(f"交互式Shell调用,随机事实:{selected_fact}")
    # 统一返回结果,方便非交互场景调用
    return selected_fact

2 调用状态检测方法

检测函数是否已经被调用过

直接读取全局标记变量即可:

print(FACT_FUNC_CALLED) # 未调用返回False,至少调用过一次返回True

单独检测当前环境是否为交互式Shell

可以把判断逻辑单独提取为工具函数使用:

import sys
def check_interactive_shell():
    return not hasattr(sys.modules['__main__'], '__file__')

3 功能测试

在Shell中直接调用函数即可触发效果:

FACT_FUNCTION()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 09:36:02