|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- class Rectangle:
- length = 0
- width = 0
- def set_length(self):
- self.length = float(input('请输入矩形的长度: '))
- def set_width(self):
- self.width = float(input('请输入矩形的宽度: '))
- def get_perimeter(self):
- if self.length == 0:
- self.set_length()
- if self.width == 0:
- self.set_width()
- return 2 * (self.length + self.width)
- def get_area(self):
- if self.length == 0:
- self.set_length()
- if self.width == 0:
- self.set_width()
- return self.length * self.width
- r1 = Rectangle
- print(r1.width, r1.length)
- print(r1.get_perimeter())
复制代码
运行错误提示:
Traceback (most recent call last):
File "***", line 100, in <module>
print(r1.get_perimeter())
TypeError: get_perimeter() missing 1 required positional argument: 'self'
请问上面代码出现了错误,不知道该如何解决呢?
在创建 Rectangle 类的实例时,需要使用圆括号来调用类,并将其赋值给变量 r1。修改代码如下:
- r1 = Rectangle()
- print(r1.width, r1.length)
- print(r1.get_perimeter())
复制代码
这样就可以正确调用 Rectangle 类中定义的方法和属性了。
完整代码:
- class Rectangle:
- length = 0
- width = 0
- def set_length(self):
- self.length = float(input('请输入矩形的长度: '))
- def set_width(self):
- self.width = float(input('请输入矩形的宽度: '))
- def get_perimeter(self):
- if self.length == 0:
- self.set_length()
- if self.width == 0:
- self.set_width()
- return 2 * (self.length + self.width)
- def get_area(self):
- if self.length == 0:
- self.set_length()
- if self.width == 0:
- self.set_width()
- return self.length * self.width
- r1 = Rectangle()
- print(r1.width, r1.length)
- print(r1.get_perimeter())
复制代码
求最佳答案
|
|