zhu*_*ren 5 python constructor
如何将以下两个类组合成一个类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
Run Code Online (Sandbox Code Playgroud)
Pid*_*ust 11
这表现在这里.
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)
Run Code Online (Sandbox Code Playgroud)
然后,您可以创建矩形
r1 = Rectangle.from_sides(s1, s2)
r2 = Rectangle.from_area(s1, a)
Run Code Online (Sandbox Code Playgroud)
这可能不是您想要的,但这是我想到的:
class Rectangle:
def __init__(self, side_a, side_b = None, area = None):
self.side_a = side_a
if area == None:
self.area = side_a * side_b
self.side_b = side_b
else:
self.side_b = area / side_a
self.area = area
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
680 次 |
| 最近记录: |