Python locals() 函数



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

示例:将 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}