我正在编写一个生成字符串的某些部分的函数,并将在另一个字符串中调用,以便完成句子。
但是,限制是这个完整的字符串必须用引号引起来。它看起来像:
date = '日期是 get_date()'
其中 get_date() 是一个以字符串形式返回日期的函数(虽然比这稍微复杂一点)。问题是 python 不允许我在引号内调用函数。
有什么想法吗?
谢谢
编辑: 我会更具体地说明我想做的事情,因为我认为这没有那么复杂,而且你们似乎是一群乐于助人的人。
我有一个配置文件 (conf.py),它定义了一堆变量。其中一个我想操纵(使用 python 脚本)是版权年份:
one_of_the_options = [('example1', 'Copyright 2008-CURRENTYEAR Company Name Ltd.')]
CURRENTYEAR 是我想通过 python 脚本的输出来控制的,我的函数只是将年份作为字符串返回。
最佳答案
试试这个:
date = 'The date is {}'.format(get_date())
上面使用格式化字符串,比评估字符串中的代码更简单(也更安全)——并且要评估的实际函数可以作为参数传递,以提高灵 active 。比如修改后的例子:
def get_current_year():
return '2013' # just an example, not the real function
s = 'Copyright 2008-{} Company Name Ltd.'
s.format(get_current_year())
=> 'Copyright 2008-2013 Company Name Ltd.'
格式化字符串允许您将字符串中的 {}
占位符替换为您想要的任何值,特别是,它可以是函数调用。在 documentation 中阅读有关格式字符串的更多信息.
关于python - 如何在引号内调用 python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18359244/