迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

修复 Python 中 NameError: Variable Is Not Defined

作者:迹忆客 最近更新:2023/07/06 浏览次数:

本文将讨论Python中NameError的原因以及如何修复特定错误 NameError:Variable is not defined


Python 中变量的作用域

变量的范围对变量实施可访问性约束,这些变量要么可以从特定块访问,要么不能。 某些变量的生命周期仅在特定块内,而其他变量则可以在整个程序中访问。

让我们通过一个例子来理解它:

#global scope
a =3

#Function to add two numbers
def displayScope():

    #local varaible
    b=2
    # sum a and b
    c = a+b

    print("The sum of a & b = ",c)
displayScope()

输出:

The sum of a & b =  5

在此示例中,变量 a 定义在顶部,并且未包含在任何块中,因此可以在整个程序中访问它。 但变量b是在功能块内部局部定义的; 因此,它无法在块外访问。


Python 中的名称错误

在Python中,NameError发生在运行时,在执行不带单引号或双引号的变量、库、函数或字符串期间,这些类型是代码中没有任何声明的类型。 其次,当您调用作用域为本地且无法全局访问的函数或变量时,Python 解释器会抛出 NameError 并表示名称“name”未定义。

Python中NameError的原因

NameError 的原因是调用了无效的函数、变量或库。 为了清楚地理解原因,我们举个例子:

# invalid funciton call
def test_ftn():
    return "Test function"
print(test_ft()) # calling the the function which does not exist

# printing invalid varaible
name = "Zeeshan Afridi"
print(Name)    # printing variable `Name` which does not exist

两者都是 Python 中 NameError 的原因,因为在第一个示例中,我们调用了不可用的函数。 函数名称是 test_ftn,而我们正在调用 test_ft 函数。

在第二个示例中,name 变量被分配给字符串 Zeeshan Afridi,但我们正在打印 Name,它甚至没有在程序中声明。 这就是为什么我们得到 NameError: name 'test_ft' is not Defined。


修复Python错误NameError: Variable is not defined

在上面的例子中,我们得到了NameError,因为我们调用了一个超出范围的变量。 让我们看看如何修复这个 NameError:Variable is not defined

#global scope
a =3

#Function to add two numbers
def displayScope():

    #local varaible
    b=2

print("The value of a = ",a)
print("The value of b = ",b)

输出:

The value of a =  3
NameError: name 'b' is not defined

上面的代码显示了 a 的值,因为它可以在整个程序中访问。 另一方面,变量 b 是本地定义的,因此只有函数 displayScope() 知道它; 您无法在范围之外访问它。

这导致了错误 NameError: name 'b' is not Defined

幸运的是,Python 引入了全局保留关键字来解决这个问题。 此全局保留关键字用于增加局部变量的范围,以便可以在整个程序中全局访问该变量。

让我们通过一个例子来理解它:

#global scope
a =3

#Function to add two numbers
def displayScope():

    #local scope
    global c
    z = 2
    c=a+b

print("The value of c =",c)

输出:

The value of c = 5

在这个例子中,变量 c 是在 displayScope() 的本地范围内定义的,但由于魔术关键字 global,我们可以全局访问它。 现在,c 可以在整个过程中访问,因为它被定义为全局的。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 错误 Error: Invalid Command Bdist_wheel

发布时间:2023/07/09 浏览次数:127 分类:Python

在 Python 中构建 wheel 时,有时 setup.py 可能会退出并出现错误 invalid command 'bdist_wheel'。 本篇文章将讨论在 Python 中解决此问题的可能解决方案。安装wheel包来修复Python中 Error:invalid command 'bdist_

Python 错误 ValueError: Too Many Values to Unpack

发布时间:2023/07/09 浏览次数:177 分类:Python

当赋值运算符 = 左侧的变量不等于赋值运算符 = 右侧的值时,有时会出现 ValueError: Too much value to unpack。当您尝试在单个输入语句中从用户处获取多个输入或将不相等的变量分配给某些值时,通

修复 Python 中 SyntaxError: Can't Assign to Function Call 错误

发布时间:2023/07/09 浏览次数:165 分类:Python

本文将讨论如何修复 Python 中的 SyntaxError: Can't Assign to Function Call 错误。Python 中的语法错误 计算机编程的语法是开发人员必须有效遵循以避免代码错误的语法或正确的书写结构。

修复 Python中错误 NameError: Input Name Is Not Defined

发布时间:2023/07/09 浏览次数:55 分类:Python

在Python 3.0版本以下,有两个内置方法来获取用户的输入。 一个是输入函数,另一个是 raw_input 函数。 但后来,在 3.X 版本中,两者被结合起来并成为一个单一的输入函数。修复Python中 NameError

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便