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 2024-07-15 00:28:16 +08:00 自己搓个 map 和 lambda |
![]() | 2 FelineTerrorist 2024-07-15 00:49:28 +08:00 ![]() 我不理解你说的 ``这样子'' 是怎样子,在我看来就是正常的代码。 建议的提问方式: 1. 你觉得应该是怎样子 2. 实际上和你所觉得的区别在哪里 3. 为什么你觉得你所觉得的样子更好 |
![]() | 3 chendy 2024-07-15 08:19:51 +08:00 没看懂问题… 看不懂代码这类问题,建议直接把问题塞进代码注释 不明白‘为什么这么写’的地方,最好带上‘我觉得可以这么写’ |
![]() | 4 Edward4074 2024-07-15 09:13:54 +08:00 ![]() 我猜问的是为什么要定义 process 这个函数[狗头] |
![]() | 5 gongym 2024-07-15 09:23:06 +08:00 看起来好处就是提取了重复逻辑,避免了重复代码。 和表达能力好像不挨着呢 |
6 yusf 2024-07-15 09:38:52 +08:00 哪样子? |
![]() | 7 kkk9 2024-07-15 09:40:30 +08:00 ![]() 如果你是疑惑 process(entry) 那是挺正常的,保持 for 结构整洁,以后有修改也不用重新看 for 的逻辑,久了肯定忘记其中的细节,不如一开始就抽出来 |
8 csys 2024-07-15 10:00:52 +08:00 我猜楼主指的是 def process(entry): ,可以看下 martin fowler 的《重构》 |
9 FkingMan OP @Edward4074 是的是的 |
10 cccjk 2024-07-15 16:13:13 +08:00 ![]() 为什么把 process 函数抽出来?这样是为了更方便吧,你贴出来的代码下面只有两处通了 process 。如果是多处呢?后面如果需要改变下逻辑呢? |