当我们在多个函数中使用相同的参数时,有什么聪明的方法来编写高效的代码吗?
**kwargs
是可以的,但我想使用默认值和输入。
例如,
def f1(a: float=0.01, b: int=1, c: str="hello"):
print("do something")
def f2(b: int=1, c: str="hello"):
print("do something different")
在这段代码中,我想要这样做(我知道这是无效的)。
bc = {b: int=1, c: str="hello"}
def f1(a: float=0.01, **bc):
print("do something")
def f2(**bc):
print("do something different")
(更新)我想在不同的函数中使用相同的一组参数。例如,多种机器学习算法(如学习率,epoch num, optimizer)
如果在多个函数中使用相同的参数,可能是时候将它们重构为一个类的实例属性了:
class f:
def __init__(self, b: int=1, c: str="hello"):
self.b = b
self.c = c
def f1(self, a: float=0.01):
print("do something")
def f2(self):
print("do something different")
obj = f(b=2, c="foo")
obj.f1(0.02)
obj.f2()