有什么办法可以使locals()和globals()像默认字典一样

安德烈(Andriy Ivaneyko)

是否可以在运行时更改Pythonglobal的行为local

在Python中,locals()提供对当前执行范围(一个dict对象)中变量的引用

>>> locals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}

是否可以将返回的引用替换locals()defaultdict,但是locals()在替换之前保留先前的值(的副本)?

我希望这可以避免UnboundLocalException在使用未初始化变量并在执行范围内访问任何变量名称时发生异常(未初始化变量将采用指定的默认值)。

我试图通过将值locals()重新分配给本地人来修改返回的值,但没有成功。

同样的问题globals()

马丁·彼得斯(Martijn Pieters)

不,你不能。locals()只是函数使用的实际名称空间反映

出于性能原因,实际的名称空间是一个数组,并且不按名称而是按索引查找本地。事后,您不能为此添加新名称,因为编译器根本没有考虑数组中的更多引用。

请注意,NameError缺少全局变量而不是局部变量会引发异常本地名称(如果尚未绑定)则UnboundLocalException改为引发但是,您也不能用globals()defaultdict替换字典。__dict__模块对象属性为只读。即使它不是只读的,dict由于在名称空间中查找名称的方式也仅支持内置类型。这是设计使然

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有什么办法可以使locals()和globals()像默认dict一样

来自分类Dev

有什么办法可以使输入“解串”,以便像标识符一样使用它?

来自分类Dev

柯南:有什么办法可以像包装一样管理档案

来自分类Dev

有什么办法可以像ctmark一样查看nfmark吗?

来自分类Dev

有什么办法可以让Cloud Dataflow像流一样输出吗?

来自分类Dev

有没有办法像python中的枚举列表一样查看字典?

来自分类Dev

是否可以使querySelectorAll像getElementsByTagName一样有效?

来自分类Dev

有没有一种方法可以使Openbox像Compiz Grid插件一样工作?

来自分类Dev

有什么方法可以像“(k,v)”一样流式传输地图,而不是使用(entry)?

来自分类Dev

在Windows上,是否有一种方法可以双击Shift键以使其像Capslock一样工作,就像移动键盘一样?

来自分类Dev

有什么办法可以像他们的演示一样打包成名?

来自分类Dev

在没有-X的ssh到机器之后,是否可以更改$ DISPLAY以使其像ssh -X一样工作?

来自分类Dev

有没有一种方法可以使JSONArray重载以使其在循环中像常规List一样工作?

来自分类Dev

有没有办法使SSH会话像本地终端会话一样工作?

来自分类Dev

有没有办法使屏幕像普通终端一样滚动?

来自分类Dev

有没有办法像 finally 一样使用 TaskContinuationOptions

来自分类Dev

我可以使printf格式像C ++流一样浮动吗

来自分类Dev

是否可以使内联块元素像内联文本一样自动换行?

来自分类Dev

我可以在Container中溢出小部件以使其像修剪的一样吗?

来自分类Dev

制作像字典一样的python字典线程安全

来自分类Dev

有什么可以提高Wearable.MessageApi.sendMessage的可靠性的吗?差不多像猫一样

来自分类Dev

有什么方法可以像setMaxResults一样为Google驱动器文件设置初始计数记录号?

来自分类Dev

有什么方法可以像kubectl一样打开IBM Cloud Kubernetes Service Cli的自动完成功能吗?

来自分类Dev

如何实现自己的收藏,可以像字典一样使用

来自分类Dev

如何实现自己的收藏,可以像字典一样使用

来自分类Dev

是否可以像现在一样轻松地编译Emscripten,但没有控制台和emscripten徽标?

来自分类Dev

是否有任何工具可以像antlrworks一样可视化jtb和javacc的已解析树

来自分类Dev

Selenium是否有办法像Protractor一样等待AngularJS?

来自分类Dev

with和env和有什么不一样

Related 相关文章

  1. 1

    有什么办法可以使locals()和globals()像默认dict一样

  2. 2

    有什么办法可以使输入“解串”,以便像标识符一样使用它?

  3. 3

    柯南:有什么办法可以像包装一样管理档案

  4. 4

    有什么办法可以像ctmark一样查看nfmark吗?

  5. 5

    有什么办法可以让Cloud Dataflow像流一样输出吗?

  6. 6

    有没有办法像python中的枚举列表一样查看字典?

  7. 7

    是否可以使querySelectorAll像getElementsByTagName一样有效?

  8. 8

    有没有一种方法可以使Openbox像Compiz Grid插件一样工作?

  9. 9

    有什么方法可以像“(k,v)”一样流式传输地图,而不是使用(entry)?

  10. 10

    在Windows上,是否有一种方法可以双击Shift键以使其像Capslock一样工作,就像移动键盘一样?

  11. 11

    有什么办法可以像他们的演示一样打包成名?

  12. 12

    在没有-X的ssh到机器之后,是否可以更改$ DISPLAY以使其像ssh -X一样工作?

  13. 13

    有没有一种方法可以使JSONArray重载以使其在循环中像常规List一样工作?

  14. 14

    有没有办法使SSH会话像本地终端会话一样工作?

  15. 15

    有没有办法使屏幕像普通终端一样滚动?

  16. 16

    有没有办法像 finally 一样使用 TaskContinuationOptions

  17. 17

    我可以使printf格式像C ++流一样浮动吗

  18. 18

    是否可以使内联块元素像内联文本一样自动换行?

  19. 19

    我可以在Container中溢出小部件以使其像修剪的一样吗?

  20. 20

    制作像字典一样的python字典线程安全

  21. 21

    有什么可以提高Wearable.MessageApi.sendMessage的可靠性的吗?差不多像猫一样

  22. 22

    有什么方法可以像setMaxResults一样为Google驱动器文件设置初始计数记录号?

  23. 23

    有什么方法可以像kubectl一样打开IBM Cloud Kubernetes Service Cli的自动完成功能吗?

  24. 24

    如何实现自己的收藏,可以像字典一样使用

  25. 25

    如何实现自己的收藏,可以像字典一样使用

  26. 26

    是否可以像现在一样轻松地编译Emscripten,但没有控制台和emscripten徽标?

  27. 27

    是否有任何工具可以像antlrworks一样可视化jtb和javacc的已解析树

  28. 28

    Selenium是否有办法像Protractor一样等待AngularJS?

  29. 29

    with和env和有什么不一样

热门标签

归档