ansible 的源代码(lib/ansible/config/manager.py) 第 283 行,我好奇这样写有啥好处?是为了更强的表达能力吗? 少写代码为了更强的表达能力?
def _add_base_defs_deprecations(base_defs):
'''Add deprecation source 'ansible.builtin' to deprecations in base.yml'''
def process(entry):
if 'deprecated' in entry:
entry['deprecated']['collection_name'] = 'ansible.builtin'
for dummy, data in base_defs.items():
process(data)
for section in ('ini', 'env', 'vars'):
if section in data:
for entry in data[section]:
process(entry)
1
passive 118 天前
自己搓个 map 和 lambda
|
2
FelineTerrorist 118 天前 13
我不理解你说的 ``这样子'' 是怎样子,在我看来就是正常的代码。
建议的提问方式: 1. 你觉得应该是怎样子 2. 实际上和你所觉得的区别在哪里 3. 为什么你觉得你所觉得的样子更好 |
3
chendy 117 天前
没看懂问题…
看不懂代码这类问题,建议直接把问题塞进代码注释 不明白‘为什么这么写’的地方,最好带上‘我觉得可以这么写’ |
4
Edward4074 117 天前 1
我猜问的是为什么要定义 process 这个函数[狗头]
|
5
gongym 117 天前
看起来好处就是提取了重复逻辑,避免了重复代码。
和表达能力好像不挨着呢 |
6
zdw189803631 117 天前
哪样子?
|
7
kkk9 117 天前 1
如果你是疑惑 process(entry) 那是挺正常的,保持 for 结构整洁,以后有修改也不用重新看 for 的逻辑,久了肯定忘记其中的细节,不如一开始就抽出来
|
8
csys 117 天前
我猜楼主指的是 def process(entry): ,可以看下 martin fowler 的《重构》
|
9
FkingMan OP @Edward4074 是的是的
|
10
cccjk 117 天前 1
为什么把 process 函数抽出来?这样是为了更方便吧,你贴出来的代码下面只有两处通了 process 。如果是多处呢?后面如果需要改变下逻辑呢?
|