ab.py
from ddr import Options
debugElmo = int(Options.env['GG_DEBUG_ELMO'])
postdevElmo = int(Options.env['GG_POST_DEV_ELMO'])
Run Code Online (Sandbox Code Playgroud)
Options.py
vars_of_interest = (
'AA_PYTHON',
'GG_POST_DEV_ELMO',
'GG_DEBUG_ELMO',
)
env = dict((var, os.getenv(var, 0)) for var in vars_of_interest)
Run Code Online (Sandbox Code Playgroud)
我不确定是什么,env = dict((var, os.getenv(var, 0)) for var in vars_of_interest)因为我对python很新
在Options.py中使用python中的函数?
什么是dict()?
变量是变量int(Options.env['GG_DEBUG_ELMO'])吗?
您可以通过查看Python解释器中的部分来了解Python代码的作用:
>>> vars_of_interest
('AA_PYTHON', 'GG_POST_DEV_ELMO', 'GG_DEBUG_ELMO')
>>> import os
>>> [(var, os.getenv(var, 0)) for var in vars_of_interest]
[('AA_PYTHON', 0), ('GG_POST_DEV_ELMO', 0), ('GG_DEBUG_ELMO', 0)]
>>> env = dict((var, os.getenv(var, 0)) for var in vars_of_interest)
>>> env
{'AA_PYTHON': 0, 'GG_DEBUG_ELMO': 0, 'GG_POST_DEV_ELMO': 0}
Run Code Online (Sandbox Code Playgroud)
env = dict(...)做env一个dict.如果您不确定对象是什么,您可以随时询问它的类型:
>>> type(env)
dict
Run Code Online (Sandbox Code Playgroud)
A dict是键和值之间的映射.在这种情况下,env是字符串之间的映射,例如'AA_PYTHON'和值0.
var是生成器表达式中使用的临时变量
((var, os.getenv(var, 0)) for var in vars_of_interest)
Run Code Online (Sandbox Code Playgroud)
的for var in vars_of_interest在发电机表达式告诉Python来的项目迭代在元组vars_of_interest,并分配值var,因为它通过循环迭代一个接一个.生成器表达式是一个迭代器.迭代器产生(var, os.getenv(var, 0))每个的值var.
表达式(var, os.getenv(var, 0))是一个元组,可以被认为是一个键值对.var是关键,os.getenv(var, 0)是价值.os.getenv查找环境变量var(例如'AA_PYTHON')并返回环境变量的值(如果存在),否则返回0.
何时dict传递键值对的迭代器,就像在表达式中一样
dict((var, os.getenv(var, 0)) for var in vars_of_interest)
Run Code Online (Sandbox Code Playgroud)
它返回一个dict将给定键映射到给定值的方法.
有关Python dicts的更多信息,请参见此处.
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |