Issue
I have functions
def getName():
name = "Mark"
return name
def getDay():
day = "Tuesday"
return day
I have a variable
message = "Hi there [getName] today is [getDay]"
I need to check all occurences for the strings between the square brackets in my message
variable and check whether that name is a function that exists so that I can evaluate the value returned by the function and finally come up with a new message string as follows
message = "Hi there Mark, today is Tuesday
Solution
There is another way of achieving this if you specifically want to use the string in that format. However, fstrings as shown in the above answer are a much superior alternative.
def f(message):
returned_value=''
m_copy=message
while True:
if '[' in m_copy:
returned_value+=m_copy[:m_copy.index('[')]
returned_value+=globals()[m_copy[m_copy.index('[')+1:m_copy.index(']')]]()
m_copy=m_copy[m_copy.index(']')+1:]
else:
return returned_value+m_copy
Answered By – Mous
Answer Checked By – Mary Flores (BugsFixing Volunteer)