📅  最后修改于: 2023-12-03 15:22:26.539000             🧑  作者: Mango
在编写程序时,我们可以为变量、函数、类等起名字。这些名字被称为名称(name)。名称在程序中有着重要的作用,不仅可以让程序更易于理解,还可以提高程序的可读性和可维护性。
在Python中,我们可以使用名称来标识变量、函数、类等。这些名称有着不同的使用范围,也就是说,它们在不同的上下文中有着不同的含义。下面我们来看一下这些名称的不同使用范围以及它们的含义。
局部名称是指在函数或方法内部定义的名称。这些名称只在其所在的函数或方法中有效,出了该函数或方法就被销毁了。以下是一个例子:
def test():
x = 1
print(x)
test() # 输出: 1
print(x) # 报错: NameError: name 'x' is not defined
在上面的例子中,变量x是在test函数中定义的局部名称。在函数外调用该变量会导致NameError异常。
全局名称是指在模块层次定义的名称。这些名称可以在模块中的任何地方被访问,也可以被其他模块引用。以下是一个例子:
# module.py
x = 1
def test():
print(x)
test() # 输出: 1
在上面的例子中,变量x是在模块层次定义的全局名称。在函数中可以直接访问该变量。
内置名称是Python内置的名称,比如print、len等。这些名称可以在任何地方访问,无需导入任何模块。以下是一个例子:
print(len([1, 2, 3])) # 输出: 3
在上面的例子中,print和len都是Python内置的名称,可以在任何地方访问。
当Python遇到一个名称时,它首先尝试在本地名称空间中查找该名称。如果找不到,就会将该名称解析为全局名称。如果还找不到,就会将该名称解析为内置名称。
如果同一个名称在不同的命名空间中都有定义,Python会按照以下规则进行名称解析:
通过本文的介绍,我们了解了Python中局部名称、全局名称和内置名称的使用范围及名称解析规则。在编写程序时,我们需要根据实际需要选择合适的名称,以提高程序的可读性和可维护性。