在Python 2.7中,我有几个我无法修改的函数,只是使用 . 其中三个是“前”,其中三个是“后”;让我们称它们为f1(),f2(),f3(),r1(),r2(),r3() . 我还有17个具有不同名称关键字的不同数量和类型参数的函数,例如:
function01( par1='hello' , par2=847, par3=True , par4=17.821 , ........... )
function02( par43=(8.3+17.9i) , par21='august' )
等等 .
我需要以这种方式将它们全部称为17:
f1()
f2()
f3()
functionNN(............................)
r1()
r2()
r3()
那段代码17次(NN = 1到17)!
没有写出17块,有没有一种狡猾的方法呢?
***添加信息...我现在拥有的是一个可怕的代码:
#block1
f1()
f2()
f3()
function01( par1=..., par2=..., par3=..., par4=...................)
r1()
r2()
r3()
#block2
f1()
f2()
f3()
function02( par43=..., par21=...)
r1()
r2()
r3()
#block3
f1()
f2()
f3()
function03( par17=..., par37=..., par11=...)
r1()
r2()
r3()
#block4
.......
.......
.......
.......
.......
#block17
.......
17个函数中有一个具有“无名”参数 . :-S
6 回答
您也可以像这样使用
globlas()
:globals()
返回一个dict,该函数在globals范围内将是一个可访问的dict形式 . 有关globals()
阅读Here的更多信息 .看看contextlib module . 很基本的例子
产量
列出包含函数及其参数的列表:
您也可以稍后更改参数 . 例如:
函数就像对象一样,你可以将em全部打包到列表中并从中调用它们 .
例如:
在你的情况下,你还需要打包参数,所以你必须使用这样的东西:
由于函数接受不同的参数,因此您必须将它们一起写入其中,并且至少应该使用它们各自的参数 . 但是你可以在那个块之外的某个地方做到这一点,以便在包装函数或列表中获得更好的可读性 .
例如:
要么
为什么不使用循环,如下所示: