【发布时间】:2021-12-14 05:35:30
【问题描述】:
class PolygonInteriorAngle(object):
def __init__(self, x):
self.x = self
def FindInteriorAngle(self):
degrees = int((x - 2) * 180)
interior = int(degrees / x)
return interior
def PrintInterior(self):
print("interior angle: " + str(self.FindInteriorAngle()))
class PolygonExteriorAngle(object):
def __init__(self, x):
self.x = self
def FindExteriorAngle(self):
exterior = int(360 / x)
return exterior
def PrintExterior(self):
print("exterior angle: " + str(self.FindExteriorAngle()))
class AngleAddition(object):
def __init__(self, x):
self.x = self
def Add(self):
sum = int(interior + exterior)
return sum
def PrintAdd(self):
print("sum of interior and exterior: " + str(self.Add()))
if __name__ == "__main__":
x = int(input("enter: "))
intObj = PolygonInteriorAngle(x)
intObj.FindInteriorAngle()
intObj.PrintInterior()
extObj = PolygonExteriorAngle(x)
extObj.FindExteriorAngle()
extObj.PrintExterior()
addObj = AngleAddition(x)
addObj.Add()
addObj.PrintAdd()
两个类(PolygonInteriorAngle 和 PolygonExteriorAngle)都可以正常工作,它们会打印出预期的效果。我想在 AngleAddition 类中做的是添加从其他两个类中获得的最终值(内部和外部)。我认为将它们放在不同的班级中效率很低,但这就是我的计算机科学老师要求我做的,我不确定如何在新班级中使用另一个班级的值。如果你做 x = 6,你会得到 120 和 60。使用 AngleAddition 我想打印 180。
【问题讨论】:
-
那些不应该是类。您可能有一个名为“Angle”的类,并将这些东西作为该类中的方法,或者一个名为“Polygon”的类,它从多个边开始并返回外角和内角,但是为内角设置单独的类是没有意义的和外角,当一个直接来自另一个时。
-
同意@TimRoberts。如果你仍然坚持做这样的事情,你可以查看 staticmethod 装饰器。您可以将它用作内部和外部最终的吸气剂。然后你的
AngleAddition类中有add_final_values()方法,它需要两个参数来求和。
标签: python python-3.x class math integer