我已经搜索过,但没有找到太多这方面的信息。我正在编写一个 Python 脚本来获取字典列表并将其转储到 yaml 文件中。例如,我有如下代码:
import yaml
dict_1 = {'name' : 'name1',
'value' : 12,
'list' : [1, 2, 3],
'type' : 'doc'
}
dict_2 = {'name' : 'name2',
'value' : 100,
'list' : [1, 2, 3],
'type' : 'cpp'
}
file_info = [dict_1, dict_2]
with open('test_file.yaml', 'w+') as f:
yaml.dump(file_info, f)
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
- list:
- 1
- 2
- 3
name: name1
type: doc
value: 12
- list:
- 1
- 2
- 3
name: name2
type: cpp
value: …Run Code Online (Sandbox Code Playgroud) 我无法理解干净的方法来做到这一点。我想要一个名为set_delay()带有各种参数的函数。我可以设置 3 种不同的“延迟类型”:恒定、均匀和正常。这是我目前拥有的:
def set_delay_constant(delay):
continue
def set_delay_uniform(min_delay, max_delay):
continue
def set_delay_normal(mean, std_dev, timeout):
continue
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是每个函数中大约 80% 的代码是重复的。我见过的想法是:
def set_delay(delay_type, delay=None, min_delay=None, max_delay=None, mean=None, std_dev=None, timeout=None):
continue
Run Code Online (Sandbox Code Playgroud)
但是当我需要用更多的延迟类型来扩展它时,我可以看到它变得非常长并且难以阅读。最“Pythonic”的方法是什么?谢谢你!