<p>既然您说要“构建一个像参数获取程序一样工作的模块”,就应该将整个文件解析到一个内部字典中:</p>
<pre><code>class Config(dict):
def __init__(self, file_name):
with open(file_name) as f:
for line in f:
key, value = line.strip().split("=")
self[key] = value
</code></pre>
<p>用法示例:</p>
<pre><code>c = Config("test.txt")
print(c)
# {'a': '10', 'b': '15', 'c': '20'}
print(c['b'])
# 15
</code></pre>
<p>如果所有的值都是数字,那么您可能需要修改它以执行<code>self[key] = float(value)</code>或类似操作。否则,您可能需要定义<code>try_parse_numeric</code>函数:</p>
<pre><code>def try_parse_numeric(s):
try:
return int(s)
except ValueError:
pass
try:
return float(s)
except ValueError:
pass
return s
class Config(dict):
def __init__(self, file_name, value_parser=try_parse_numeric):
self.value_parser = value_parser
with open(file_name) as f:
for line in f:
key, value = line.strip().split("=")
self[key] = self.value_parser(value)
</code></pre>
<p>如果它变得更复杂,你可能想使用<a href="https://docs.python.org/3/library/configparser.html" rel="nofollow noreferrer">^{<cd3>}</a>而不是自己滚动。你知道吗</p>