Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 解释locals()及其工作原理_Python_Python 2.7_Locals - Fatal编程技术网

Python 解释locals()及其工作原理

Python 解释locals()及其工作原理,python,python-2.7,locals,Python,Python 2.7,Locals,有人能解释一下这段代码是如何工作的吗 info = {} info.update(locals()) info.pop('self', None) info.pop('info', None) 我在假设,如果我错了,请纠正我,但它获取当前函数中的所有变量,并将它们放入dict,然后删除self和它放入的dict,对吗?除了赛尔夫和格言之外,还有什么我不想说的吗 将dict序列化并发布会有什么问题吗?这可能来自于。其思想是在函数中填充许多变量,并使用locals()将它们传递给模板。它省去了创建

有人能解释一下这段代码是如何工作的吗

info = {}
info.update(locals())
info.pop('self', None)
info.pop('info', None)
我在假设,如果我错了,请纠正我,但它获取当前函数中的所有变量,并将它们放入dict,然后删除self和它放入的dict,对吗?除了赛尔夫和格言之外,还有什么我不想说的吗


将dict序列化并发布会有什么问题吗?

这可能来自于。其思想是在函数中填充许多变量,并使用
locals()
将它们传递给模板。它省去了创建包含所有这些变量的新词典的工作量

具体地说,您的代码创建了一个包含所有局部变量的字典,并删除了
self
(类对象参数)和
info
(刚刚创建的变量)。将返回所有其他局部变量


然后,只要数据可以序列化,就可以对数据进行JSON序列化。例如,必须首先将日期时间变量转换为字符串。

这可能来自。其思想是在函数中填充许多变量,并使用
locals()
将它们传递给模板。它省去了创建包含所有这些变量的新词典的工作量

具体地说,您的代码创建了一个包含所有局部变量的字典,并删除了
self
(类对象参数)和
info
(刚刚创建的变量)。将返回所有其他局部变量


然后,只要数据可以序列化,就可以对数据进行JSON序列化。例如,必须首先将日期时间变量转换为字符串。

这可能来自。其思想是在函数中填充许多变量,并使用
locals()
将它们传递给模板。它省去了创建包含所有这些变量的新词典的工作量

具体地说,您的代码创建了一个包含所有局部变量的字典,并删除了
self
(类对象参数)和
info
(刚刚创建的变量)。将返回所有其他局部变量


然后,只要数据可以序列化,就可以对数据进行JSON序列化。例如,必须首先将日期时间变量转换为字符串。

这可能来自。其思想是在函数中填充许多变量,并使用
locals()
将它们传递给模板。它省去了创建包含所有这些变量的新词典的工作量

具体地说,您的代码创建了一个包含所有局部变量的字典,并删除了
self
(类对象参数)和
info
(刚刚创建的变量)。将返回所有其他局部变量


然后,只要数据可以序列化,就可以对数据进行JSON序列化。例如,日期时间变量必须首先转换为字符串。

代码创建一个名为“info”的新字典,并将所有本地python变量分配给它。注意:这些是指向本地环境中相同对象的指针,因此,如果您在
info
中修改列表或词典,它也将在您的环境中更改(这可能是或可能不是所需的行为)

更新并返回表示当前本地 符号表。自由变量在被调用时由locals()返回 在功能块中调用,但不在类块中调用

注:本词典内容不得修改;变化 可能不会影响应用程序使用的本地变量和自由变量的值 翻译


info.pop('self',None)
info.pop('info',None)
将分别从新的
info
词典中删除'self'和'info'。如果它们不存在,则返回
None
。请注意,
info.pop('self')
如果字典中没有'self',将返回一个KeyError。

代码创建一个名为'info'的新字典,并将所有本地python变量分配给它。注意:这些是指向本地环境中相同对象的指针,因此,如果您在
info
中修改列表或词典,它也将在您的环境中更改(这可能是或可能不是所需的行为)

更新并返回表示当前本地 符号表。自由变量在被调用时由locals()返回 在功能块中调用,但不在类块中调用

注:本词典内容不得修改;变化 可能不会影响应用程序使用的本地变量和自由变量的值 翻译


info.pop('self',None)
info.pop('info',None)
将分别从新的
info
词典中删除'self'和'info'。如果它们不存在,则返回
None
。请注意,
info.pop('self')
如果字典中没有'self',将返回一个KeyError。

代码创建一个名为'info'的新字典,并将所有本地python变量分配给它。注意:这些是指向本地环境中相同对象的指针,因此,如果您在
info
中修改列表或词典,它也将在您的环境中更改(这可能是或可能不是所需的行为)

更新并返回表示当前本地 符号表。自由变量在被调用时由locals()返回 在功能块中调用,但不在类块中调用

注:本词典内容不得修改;变化 可能不会影响应用程序使用的本地变量和自由变量的值 翻译

info.pop('self',None)
info.pop('info',None)
将分别从新的
info
词典中删除'self'和'info'。如果它们不存在,则返回
None<