我有两个文件,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())
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)
如果觉得答案对你有帮助,请点击下采纳,谢谢~