Python中没有内置fun()函数,它通常是用户自定义、第三方库提供或教程中的示例函数;调用报NameError说明未定义、定义位置错误、作用域受限或拼写不一致。
Python 里没有内置的 fun() 函数——它不是标准库函数,也不是关键字。你看到的 fun(),几乎肯定是你自己定义的函数、第三方库里的函数,或者教程/代码片段中用作占位符的示例名。
fun() 会报 NameError: name 'fun' is not defined
这是最常见的现象,说明 Python 解释器根本没找到这个名称的定义。
fun() 没有被 def fun(): 显式声明过if False:)或函数内部,作用域受限func() 或 Fun(),调用却写成 fun()
fun() 到底是谁、在哪定义的别猜,用 Python 自带机制查:
print(fun) —— 如果没报错,会输出类似 ,说明它存在且是函数import inspect; print(inspect.getsource(fun)) 查源码(仅限纯 Python 定义的函数)help(fun) 看文档字符串和签名
from somepkg import fun),检查是否漏了 import 或模块未安装fun() 执行时卡住、返回意外结果问题不在名字,而在函数体逻辑。重点检查这几处:
fun("123") 和 fun(123) 行为可能完全不同fun() 修改了全局列表却没返回,你以为它“没干活”RecursionError
await)却没用 async def 定义,或没用 await fun() 调用快速验证方式:在函数开头加一句 print("fun() started, args:", locals()),看是否真被执行、参数是否符合预期。
def fun(x):
print("fun() started, args:", locals())
if not isinstance(x, int):
raise TypeError(f"expected int, got {type(x).__name__}")
return x * 2
这样调用会触发 print 并正常返回
result = fun(5)
真正麻烦的往往不是 fun() 本身,而是它依赖的外部状态(文件、网络、全局变量)或隐藏的默认参数。调试时优先隔离——把 fun() 剥离出来单独跑,传死值,再逐步还原上下文。