问题出在第六行,我删删改改试过了,是这个函数的问题
class Rectn():
def __init__(self,x=0,y=0):
print("创建成功")
def __setRect__(self,a,b):
self.y=b
self.x=a
def setRect(self):
return self.y*self.x
def print_Area(self):
S=self.setRect()
print("矩形面积为",S)
if __name__=='__main__':
r1=Rectn(5,4)
r2=Rectn(6,7)
r1.setRect(5,7)
r1.print_Area()
r1.setRect(5,7)
TypeError: setRect() takes 1 positional argument but 3 were given
在代码中,setRect()方法定义时没有设置参数,但在调用时传入了两个参数,因此出现了TypeError错误。需要在setRect()方法定义时设置两个参数,如下所示:
class Rectn():
def __init__(self,x=0,y=0):
print("创建成功")
self.x = x
self.y = y
def setRect(self,a,b):
self.y = b
self.x = a
def getRect(self):
return self.y * self.x
def print_Area(self):
S = self.getRect()
print("矩形面积为",S)
if __name__=='__main__':
r1 = Rectn(5,4)
r2 = Rectn(6,7)
r1.setRect(5,7)
r1.print_Area()
在上述代码中,setRect()方法定义时设置了两个参数a和b,调用时传入了两个参数,避免了TypeError错误。
执行结果如下:
你的setRect没有定义型参