如何使用pythonf字符串替换format()?
我在我的 constants.py 文件中保存了一些网址,如下所示:
BASE_URL = 'https://{env}.my-site.com'
ENV_URLS = {
'dev': BASE_URL.format(env='dev'),
'demo': BASE_URL.format(env='demo'),
'prod': BASE_URL.format(env='prod')
}
这是使用 old 完成的.format(),如何使用 python 的 new 实现相同的结果f-string formatting?
回答
f-strings 本身并不是目标。如果看起来 f-strings 不会改进一段代码,那么就没有理由去寻找强制它们的方法。
也就是说,这段代码是不必要的重复。可以通过 dict 理解来缩短它:
ENV_URLS = {env: BASE_URL.format(env=env) for env in ['dev', 'demo', 'prod']}
然后如果你想使用一个 f 字符串,这样做很容易:
ENV_URLS = {env: f'https://{env}.my-site.com' for env in ['dev', 'demo', 'prod']}