NameError:函数未在 Python 中定义

NameError: 函数未在 Python 中定义

NameError: function is not defined in Python

Python“NameError: function is not defined”发生在我们尝试调用未声明或声明之前的函数时。要解决此错误,请确保您没有拼错函数名称并在声明后调用它。

nameerror 函数未定义

下面是错误如何发生的示例。

主程序
# ⛔️ NameError: name 'do_math' is not defined print(do_math(50, 50)) def do_math(a, b): return a + b

我们试图do_math在声明它之前调用该函数,这导致了错误。

在我们调用该函数时,它没有在我们的程序中定义。

要解决这种情况下的错误,我们必须在函数声明后将调用移至该函数。

主程序
def do_math(a, b): return a + b print(do_math(50, 50)) # 👉️ 100

Python“NameError: function is not defined”的出现有多种原因:

  1. 调用一个不存在的函数。
  2. 在声明之前调用函数。
  3. 函数名称拼写错误(名称区分大小写)。
  4. 使用内置模块而不先导入它们。
  5. 从外部调用作用域函数。例如,声明一个嵌套函数并试图从外部调用它。

确保在调用函数之前定义了该函数,并且没有拼错函数名称。

主程序
def do_math(a, b): return a + b # ⛔️ NameError: name 'do_Math' is not defined. Did you mean: 'do_math'? print(do_Math(50, 50)) # 👈️ function name misspelled

我们拼错了M导致错误的函数名称(使用了大写字母)。

函数名称区分大小写,因此请确保在调用函数时没有拼错函数名称。

如果您使用内置模块而不导入它,也会导致“NameError: function is not defined”。

主程序
# ⛔️ NameError: name 'math' is not defined print(math.floor(17.7))
我们使用math模块时没有先导入它,所以 Python 不知道math指的是什么。

要解决该错误,请确保导入您正在使用的所有模块。

主程序
import math print(math.floor(17.7)) # 👉️ 17

如果您尝试从外部调用作用域函数,也会发生该错误。

主程序
def outer(): def inner(): return 'hello world' print('success') outer() # ⛔️ NameError: name 'inner' is not defined. Did you mean: 'iter'? inner()

inner函数是在函数内部声明的outer,所以我们不能从外部范围调用它。

如果我们必须从外部访问函数,最好的解决方法是在外部作用域中声明该函数。

主程序
def inner(): return 'hello world' def outer(): print(inner()) print('success') outer() inner()

在这种情况下,另一种方法是返回
inner()从函数调用函数的结果outer()

主程序
def outer(): def inner(): return 'hello world' result = inner() return result print(outer()) # 👉️ "hello world"

结论

Python“NameError: function is not defined”发生在我们尝试调用未声明或声明之前的函数时。要解决此错误,请确保您没有拼错函数名称并在声明后调用它。

发表评论