我可以将类方法作为默认参数传递给另一个类方法吗

2023-11-25

我想将类方法作为默认参数传递给另一个类方法,以便我可以将该方法重用为@classmethod:

@classmethod
class foo:
    def func1(self,x):
        do somthing;
    def func2(self, aFunc = self.func1):
        # make some a call to afunc
        afunc(4)

这就是为什么当该方法func2在类内被调用aFunc默认为self.func1,但我可以从类外部调用相同的函数,并在输入处将其传递给不同的函数。

I get:

NameError:名称“self”未定义

这是我的设置:

class transmissionLine:  
    def electricalLength(self, l=l0, f=f0, gamma=self.propagationConstant, deg=False):  

但我希望能够打电话electricalLength具有不同的伽玛函数,例如:

transmissionLine().electricalLength (l, f, gamma=otherFunc)

默认参数值是在函数定义期间计算的,而不是在函数调用期间计算的。所以不,你不能。但是,您可以执行以下操作:

def func2(self, aFunc = None):
    if aFunc is None:
        aFunc = self.func1
    ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将类方法作为默认参数传递给另一个类方法吗 的相关文章