Есть ли что-то вроде Rubys "Hello #{userNameFunction()}"
в python?
В Python вы должны использовать интерполяцию строк
"Hello %s" % user_name_function()
или формирование строки
"Hello {0}".format(user_name_function())
Последний доступен в Python 2.6 или выше.
Также обратите внимание, что по соглашению вы не используете CamelCase для имен функций в Python (CamelCase предназначен только для имен классов - см. PEP 8).
Интерполяция строк Python наиболее близка к тому, что вы хотите.
Наиболее распространенная форма:
>>> "Hello %s" % userNameFunction()
'Hello tm1brt'
Это использует кортеж для подачи данных в том порядке, в котором они нужны в строке.
Но вы также можете использовать dict
и использовать значащие имена для данных, которые вам нужны внутри строки:
>>> "Hello %(name)s" % {'name' : userNameFunction()}
'Hello tm1brt'
В Python 2.4+ вы можете использовать Template
класс в string
, чтобы сделать следующее:
from string import Template
def user_name_function(): return "Dave"
s = Template('Hello $s')
print s.substitute(s=user_name_function())
# 'Hello Dave'
print s.substitute({'s': user_name_function()})
# 'Hello Dave'