1】己知矩形的长和宽,设计类用来求矩形的面积和周长。 要求设计不同的构造函数完成对不同对象的构建。在主函数中定义该类对象,完成对类的成员访问。
时间: 2024-11-03 14:19:47 浏览: 45
在Python中,我们可以创建一个名为Rectangle的类,来表示矩形并包含计算面积和周长的方法。由于题目要求有多种构造函数,我们可以考虑使用默认值、参数列表以及关键字参数来满足需求。下面是一个简单的实现:
```python
class Rectangle:
def __init__(self, length=0, width=0): # 默认构造函数,如果没有指定长宽,则初始化为0
self.length = length
self.width = width
def area(self):
return self.length * self.width
def perimeter(self):
return 2 * (self.length + self.width)
@staticmethod
def from_specifications(length, width): # 通过长度和宽度直接构造
return Rectangle(length, width)
@classmethod
def from_keyword_arguments(cls, **kwargs): # 使用关键字参数构造
if 'length' in kwargs and 'width' in kwargs:
return cls(kwargs['length'], kwargs['width'])
else:
raise ValueError("Both length and width must be provided.")
# 主函数示例
def main():
# 直接使用默认构造函数
rectangle_default = Rectangle()
print(f"Default rectangle: Area={rectangle_default.area()}, Perimeter={rectangle_default.perimeter()}")
# 使用from_specifications构造函数
rectangle_specified = Rectangle.from_specifications(5, 3)
print(f"Specified rectangle: Area={rectangle_specified.area()}, Perimeter={rectangle_specified.perimeter()}")
# 使用from_keyword_arguments构造函数
try:
rectangle_keywords = Rectangle.from_keyword_arguments(length=4, width=6)
print(f"Keyword arguments rectangle: Area={rectangle_keywords.area()}, Perimeter={rectangle_keywords.perimeter()}")
except ValueError as e:
print(e)
if __name__ == "__main__":
main()
```
在这个例子中,我们定义了三个构造函数:一个默认构造函数(接受两个参数),一个从特定规格创建的静态方法(接收两个参数),以及一个从关键字参数创建的类方法(接收任意数量的关键字参数)。在主函数`main()`中,我们展示了如何使用这三个构造函数创建矩形对象。
阅读全文