不想秃的医学僧 发表于 2022-1-25 16:41:06

报错了,但不明白哪错了

显示16行get_area() missing 1 required positional argument: 'self'
如果我想设计一个可以计算矩形周长和面积的类应该要怎么改呢

class MyRectangel:
    def __init__(self,x,y):
      self.x = 0
      self.y = 0
    def __init__(self,width,height):
      self.width = 100
      self. height = 100

    def get_area(self):
      print('矩形的面积是:',self.width*self.height)

    def get_perimeter(self):
      print('矩形的周长是:',self.width*2+self.height*2)

a1 = MyRectangel
a1.get_area()
print(a1(20,30))

tommyyu 发表于 2022-1-25 16:53:02

本帖最后由 tommyyu 于 2022-1-25 17:02 编辑

第15行改成a1 = MyRectangel(20,30)

好玩爱忘 发表于 2022-1-25 16:59:40

class MyRectangel:
    # def __init__(self,x,y):
    #   self.x = 0
    #   self.y = 0
    def __init__(self,width,height):
      self.width = width
      self. height = height

    def get_area(self):
      print('矩形的面积是:',self.width*self.height)

    def get_perimeter(self):
      print('矩形的周长是:',self.width*2+self.height*2)

a1 = MyRectangel(20,30)
a1.get_area()
a1.get_perimeter()

不想秃的医学僧 发表于 2022-1-25 17:09:34

tommyyu 发表于 2022-1-25 16:53
第15行改成

那请问,如果我想让它如果不传参数的话,width和height默认为100,应该怎么修改呢

翼是孤独 发表于 2022-1-25 17:17:33

不想秃的医学僧 发表于 2022-1-25 17:09
那请问,如果我想让它如果不传参数的话,width和height默认为100,应该怎么修改呢

重载,再写个无参的方法

tommyyu 发表于 2022-1-25 17:24:24

不想秃的医学僧 发表于 2022-1-25 17:09
那请问,如果我想让它如果不传参数的话,width和height默认为100,应该怎么修改呢

把第五行改成def __init__(self,width=100,weight=100):
页: [1]
查看完整版本: 报错了,但不明白哪错了