当一个函数中需要的参数、变量个数不确定时,需要根据需求动态的生成变量并赋予相应的值,这时可以用到locals()这个函数
locals以字典的形式返回当前函数运行环境下的所有局部变量 字典的key是变量名 字典的value是变量的值
通过对这个字典增加新的key、value即可产生新的变量,调用时用变量的名取这个字典中取变量的值或根据某个值得到变量名
例子:
dynamic_variable = locals() for i in range(0,4): dynamic_variable[f'new_var{i}']=i print(dynamic_variable['new_var0']) print(dynamic_variable['new_var1']) print(dynamic_variable['new_var2']) print(dynamic_variable['new_var3'])可以达到对任意适量的传入值进行整理、重新赋值的操作。
def test(var1,var2, *args, **kwargs): dynamic_variable = locals() arg_num = len(args) result_list = [] if arg_num > 0: for i, arg in enumerate(args): if isinstance(arg, str): dynamic_variable['dynamic' + str(i)] = [arg] elif isinstance(arg, list): dynamic_variable['dynamic' + str(i)] = arg