Python中Rectangle类未定义报错问题求助
解决Python中Rectangle未定义的问题
嘿,我来帮你搞定这个报错!你遇到的NameError: name 'Rectangle' is not defined,本质原因很简单:你还没有告诉PythonRectangle这个类到底是什么,就直接去创建它的实例了。
咱们一步步来修正:
第一步:先定义Rectangle类
首先得把Rectangle类写出来,包含初始化长和宽的方法,以及计算面积、周长的方法——这正是任务要求的“完成两个方法”的核心部分:
class Rectangle: def __init__(self, length, width): # 把传入的长和宽存为实例属性,方便后续方法调用 self.length = length self.width = width def calculate_area(self): # 计算面积的方法,返回长×宽的结果 return self.length * self.width def calculate_perimeter(self): # 计算周长的方法,返回2×(长+宽)的结果 return 2 * (self.length + self.width)
注意:方法名可以根据习惯调整(比如叫
get_area也行),核心是要用self.来访问实例的长和宽,确保不会硬编码固定数值。
第二步:创建实例并测试
现在类定义好了,就可以按照任务要求创建实例、打印结果,同时完成后续测试:
# 创建任务要求的第一个实例:长6,宽8 rect = Rectangle(6, 8) # 打印面积和周长 print(f"该矩形的面积:{rect.calculate_area()}") print(f"该矩形的周长:{rect.calculate_perimeter()}") # 额外的3个测试实例(这里举例子,你可以替换成任务指定的测试值) test_rect1 = Rectangle(3, 4) print(f"测试实例1:面积={test_rect1.calculate_area()},周长={test_rect1.calculate_perimeter()}") test_rect2 = Rectangle(5, 10) print(f"测试实例2:面积={test_rect2.calculate_area()},周长={test_rect2.calculate_perimeter()}") test_rect3 = Rectangle(7, 2) print(f"测试实例3:面积={test_rect3.calculate_area()},周长={test_rect3.calculate_perimeter()}")
几个关键细节提醒
- 大小写敏感:Python里类名通常首字母大写(比如
Rectangle),别写成小写的rectangle,否则会触发同样的未定义错误 - 代码顺序:必须先写类的定义代码,再写创建实例的代码,不能反过来执行
- 避免硬编码:咱们通过调用方法计算结果,而不是直接写
48或28这类固定值,这样不管实例的长和宽是什么,都能自动算出正确结果,完全符合任务要求
内容的提问来源于stack exchange,提问作者Hannah
相关产品推荐
相关产品推荐

