gpt4 book ai didi

python - python中的多个构造函数

转载 作者:太空狗 更新时间:2023-10-30 01:47:55 25 4
gpt4 key购买 nike

如何将以下 2 个类合并为一个类 Rectangle,以便可以通过 rect = Rectangle(side_a, side_b) 或 rect = Rectangle(side_a, area) 创建一个 Rectangle 对象?

class Rectangle1:
def __init__(self, side_a, side_b):
self.side_a = side_a
self.side_b = side_b
self.area = self.side_a * self.side_b

class Rectangle2:
def __init__(self, side_a, area):
self.side_a = side_a
self.area = area
self.side_b = self.area / side_a

最佳答案

如图所示here .

class Rectangle:

def __init__(self, a, b):
""" Create a new rectangle with sides of length a and b.
"""
self.side_a = side_a
self.side_b = side_b
self.area = self.side_a * self.side_b

@classmethod
def from_sides(cls, a, b):
return cls(a, b)

@classmethod
def from_area(cls, a, o):
return cls(a, o/a)

然后您可以将矩形创建为

r1 = Rectangle.from_sides(s1, s2)
r2 = Rectangle.from_area(s1, a)

关于python - python中的多个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42820137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com