马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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())
求最佳答案
|