未被驯化的甲鱼 发表于 2020-5-23 14:40:28

大佬们!为什么我这始终报错'缺少一个必要的参数self'?(关于036期作业类和对象)

class Rectangle:
    #属性
    long = 20
    wide = 10
    #方法
    def set_rect(self):
      long = input('请输入长 : ')
      wide = input('请输入宽 : ')
    def get_rect(self):
      #print('现在的长是:')
      print('现在的长是:',long)
      print('现在的宽是:',wide)
    def get_area(self):
      s = long * wide
      print('面积是',s)

运行后
>>> fc = Rectangle
>>> fc.get_rect()
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
    fc.get_rect()
TypeError: get_rect() missing 1 required positional argument: 'self'
>>>



get_rect(self)不是有加self吗。。。为什么会报错?
{:10_266:}

Twilight6 发表于 2020-5-23 14:43:10

本帖最后由 Twilight6 于 2020-5-23 14:47 编辑

print('现在的长是:',long)
print('现在的宽是:',wide)
s = long * wide
都忘记加self了
方法调用类属性要加 self!!!
class Rectangle:
    #属性
    long = 20
    wide = 10
    #方法
    def set_rect(self):
      self.long = int(input('请输入长 : '))
      self.wide = int(input('请输入宽 : '))
    def get_rect(self):
      #print('现在的长是:')
      print('现在的长是:',self.long)
      print('现在的宽是:',self.wide)
    def get_area(self):
      s = self.long * self.wide
      print('面积是',s)
噢 又观察了下 你input 还没转化为 整型~

qiuyouzhi 发表于 2020-5-23 14:45:39

是fc = Rectangle()吧

永恒的蓝色梦想 发表于 2020-5-23 15:20:11

我认为3L才是正解
页: [1]
查看完整版本: 大佬们!为什么我这始终报错'缺少一个必要的参数self'?(关于036期作业类和对象)