0

是否可以在 fstring 中创建 fstring?

我现在正在尝试的是使用 eval 创建一个动态函数。

我的代码是这样的

func_string = ''
for scenario in ['scene1', 'scene2']:
    for aa in ['int', 'ext']:
         func_string += f'''
             def function_{scenario}_{aa}(part):
                 print(f"this is {part}")
           '''


eval(func_string)
function_scene1_int('part1')

运行此脚本将返回:这是第 1 部分

4

1 回答 1

1

您可以制作这样的工厂方法...

def factory(a, b):
    def g(c):
        print(f'this is {c}')
        return f'other stuff using {a}, {b} and {c}'  # if you want to
    return g

然后像使用它

>>> f = factory('scene1', 'int')
>>> msg = f('part1')
this is part1
>>> print(msg)
other stuff using scene1, int and part1
于 2018-06-26T10:14:29.003 回答