Python locals() 函数是一个内置函数,它返回表示当前本地符号表的字典。它提供对所有局部变量、函数及其相应值的访问。请注意,符号表是由 Python 编译器在执行给定代码之前创建的。
在 Python 中,每个程序都有一个符号表,其中包含有关程序中定义的名称(变量、函数、类等)的信息。symbol 表由字典表示,其中名称是键,关联的值表示其当前值或引用。
语法
以下是 Python locals() 函数的语法 -
locals()
参数
Python locals() 函数不接受任何参数。
返回值
Python locals() 函数返回表示本地符号表的字典。
locals() 函数示例
练习以下示例来理解 Python 中 locals() 函数的用法:
示例:使用 locals() 函数
locals() 函数可用于跟踪给定函数中的局部变量。下面的代码将显示当前范围内的所有局部变量。
def localFun():
localVar1 = 112
localVar2 = "qikepu"
print(locals())
print("The local attributes of the given functions are:")
localFun()
以下是上述代码的输出 -
The local attributes of the given functions are:
{'localVar1': 112, 'localVar2': 'qikepu'}
示例:使用 locals() 函数更改变量的值
对 locals() 函数返回的字典所做的更改将被忽略,这意味着它们不会影响局部变量的值。这就是为什么当我们对局部变量进行修改时,它不会影响局部变量。在此示例中,我们可以看到 modify 的 before 和 after 影响。
def localFun():
localVar = 56
print("Before modifying:", localVar)
locals()["localVar"] = 26
print("After modifying:", localVar)
localFun()
上述代码的输出如下 -
Before modifying: 56
After modifying: 56
After modifying: 56
示例:将 locals() 与 local 和 instance 变量一起使用
下面的代码演示了如何借助 locals() 函数查看类函数中局部变量和实例变量的工作。此代码将返回一个以 “self” 为键的字典,指向给定类的实例。
class LocalClass:
def localMethod(self):
self.localVar = 100
print(locals())
obj = LocalClass()
obj.localMethod()
以下是上述代码的输出 -
{'self': <__main__.LocalClass object at 0x7b1718cc2fd0>}
示例:将 locals() 与 lambda 表达式一起使用
我们还可以将 locals() 函数与 lamda 表达式一起使用。在这里,我们创建了一个 lambda 表达式,该表达式返回其局部变量。
localLambda = lambda loclaVar: locals()
print(localLambda(52))
上述程序在执行时显示以下输出 -
{'loclaVar': 52}