python中globals()的用法

python中globals()的用法

 

1. 获取所有的全局变量, 获取到的内容如下:

{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7efc4bd1d960>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/home//WorkSpace/tmp/try_globals.py', '__cached__': None, 'a': 10, 'f': <function f at 0x7efc4d0abd90>}

 

相应有`locals()`变量可以用来获取局部变量.

 

2. 用于概据变量名的内容来生成新的变量.

比如, 用字符串a的内容, 来生成一个新变量并赋值. 算是比较tick的用法, 感觉上比用eval生成变量名安全一点??? 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = 'apple'
b = 'banana'
c = 'orange'
 
globals()[a]=1
globals()[b]=2
globals()[c]=3
 
print(globals())
 
输出内空:
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f8dcf121960>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/home/ckboss/WorkSpace/tmp/try_globals.py', '__cached__': None, 'a': 'apple', 'b': 'banana', 'c': 'orange', 'apple': 1, 'banana': 2, 'orange': 3}
 
没有显示定义, 但下面三个变量已经生成好了.
print(apple)
print(banana)
print(orange)

  

posted @   酱_油  阅读(411)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
点击右上角即可分享
微信分享提示