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
相关产品推荐
相关产品推荐

