我们在邻近的多个地方使用了以下函数调用:
func(param1, param2, param3, param4, param5)
我想使用
funccall()
在所有地方。
有宏的概念吗?给出所有参数的部分(将答案标记为正确)是正确的,并且如果所有后续调用都在同一范围内,则它可以工作。
如果场景是这样的怎么办:
A():
func(p1,p2,p3,p4,p5) # 3 times
B():
func(p1,p2,p3,p4,p5) # 2 times
C():
func(p1,p2,p3,p4,p5) # 4 times
使用部分:
A():
funccall = partial(func,p1,p2,p3,p4,p5)
funccall() # 3 times
B():
funccall = partial(func,p1,p2,p3,p4,p5)
funccall() # 2 times
C():
funccall = partial(func,p1,p2,p3,p4,p5)
funccall() # 4 times
理想(如果代码遵循约定并且可读性不成问题)
macro funccall() = func(p1,p2,p3,p4,p5)
A():
funccall() # 3 times
B():
funccall() # 2 times
C():
funccall() # 4 times
最佳答案
此问题与 this one 相关
如MattH提供的答案,您可以使用functools.partial
from functools import partial
funccall = partial(func, 1, 2, 3, 4, 5)
funccall()
关于python - 当多次调用具有多个参数的函数时,Python中有什么好方法可以减少代码重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52512725/