Python中实例方法是不能输入多个参数吗?

问题出在第六行,我删删改改试过了,是这个函数的问题

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错误。

执行结果如下:

img

你的setRect没有定义型参