如何在当前文件中设定另一个文件中某个函数参数的默认值

我有两个文件,debug.py和debug01.py。
debug01.py中的代码

class Calculation:
    def __init__(self):
        pass

    def multiply(self, x=0, y=1):
        z = x * y
        return z

debug.py里面的代码

from debug01 import Calculation

cal = Calculation()

cal.multiply(y=5)

可以看到此时在debug.py中调用multiply(y=5),此时的x参数默认为0。
我想问有没有办法在debug.py中直接设定x参数的值,比如设定x=2,这样调用multiply(y=5)时让x的参数默认值变为2,而不是0.



class Calculation:
    def __init__(self):
        self.defaultX = 0
        self.defaultY = 1
        pass
 
    def multiply(self, x=None, y=None):
        if x==None:
            x = self.defaultX
        if y==None:
            y = self.defaultX
        z = x * y
        return z
    
cal = Calculation()

cal.defaultX=10

z = cal.multiply(y=5)   

print(z)

函数的默认值设定后就是固定的,没法改变,不过曲线救国还是可以的
既然是类,那么初始函数中可以设置一个参数来做默认参数,参考如下

class Calculation:
    # 设置默认x
    defaultx=0
    # 设置默认y
    defaulty=1
    def __init__(self):
        pass
    def multiply(self, x=None, y=None):
        if not x:
            x=self.defaultx
        if not y:
            y=self.defaulty
        z = x * y
        return z
    def setdefaultx(self,x):
        self.defaultx=x
    def setdefaulty(self,y):
        self.defaulty = y

cal = Calculation()
print(cal.multiply(y=5))
cal.setdefaultx(10)
cal.setdefaulty(10)
print(cal.multiply(y=6))

print(cal.multiply(x=2))

print(cal.multiply())

img


class Calculation:
    def __init__(self,xDefault=0,yDefault=1):
        self.xDefault = xDefault
        self.yDefault = yDefault
    
    def multiply(self,x=self.xDefault,y=self.yDefault):
        z = x * y
        return z
    
form debug01 import Calculation
cal = Calculation(2) # 设置x的默认值或者y的默认值
cal.multiply(y=5)

如果觉得答案对你有帮助,请点击下采纳,谢谢~