我正在编写一个函数,它生成一个字符串的某个部分,并将在另一个字符串中调用,这样它就完成了这个句子。
但是,限制是必须用引号设置完整的字符串。它看起来像:
date = 'The date is 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())

上面使用的是格式化的字符串,比在字符串中评估代码要简单得多(也更安全),并且可以将要评估的实际函数作为参数传递,以增加灵活性。例如,对于编辑后的示例:
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中有关格式字符串的更多信息。

07-24 09:52
查看更多