You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何调用不同类返回值实现多边形内外角结果相加

问题修复方案

原有代码问题

  • 所有类的初始化方法赋值错误:__init__中错误写为self.x = self,应改为self.x = x,正确接收传入的正多边形边数
  • 角度计算方法未绑定实例属性:两个角度计算类的计算逻辑中直接使用变量x,未加self.前缀,会触发变量未定义报错
  • AngleAddition类缺少跨类调用逻辑:Add方法直接使用未定义的interior、exterior变量,没有关联另外两个类的计算能力

修复后完整代码

class PolygonInteriorAngle(object):
    def __init__(self, x):
        self.x = x
    
    def FindInteriorAngle(self):
        degrees = int((self.x - 2) * 180)
        interior = int(degrees / self.x)
        return interior
    
    def PrintInterior(self):
        print("interior angle: " + str(self.FindInteriorAngle()))

class PolygonExteriorAngle(object):
    def __init__(self, x):
        self.x = x
    
    def FindExteriorAngle(self):
        exterior = int(360 / self.x)
        return exterior
    
    def PrintExterior(self):
        print("exterior angle: " + str(self.FindExteriorAngle()))

class AngleAddition(object):
    def __init__(self, x):
        self.x = x
    
    def Add(self):
        # 实例化另外两个计算类,调用对应方法获取值
        interior_val = PolygonInteriorAngle(self.x).FindInteriorAngle()
        exterior_val = PolygonExteriorAngle(self.x).FindExteriorAngle()
        return int(interior_val + exterior_val)
    
    def PrintAdd(self):
        print("sum of interior and exterior: " + str(self.Add()))
    
if __name__ == "__main__":
    x = int(input("enter: "))
    intObj = PolygonInteriorAngle(x)
    intObj.PrintInterior()
    extObj = PolygonExteriorAngle(x)
    extObj.PrintExterior()
    addObj = AngleAddition(x)
    addObj.PrintAdd()

实现说明

AngleAddition类中调用其他类返回值的逻辑非常直接:在Add方法内部传入当前实例存储的边数self.x,分别实例化PolygonInteriorAngle、PolygonExteriorAngle两个类,再调用各自的计算方法拿到内角、外角值,相加后返回即可,完全保留了要求的三类拆分结构。
输入x=6时运行结果如下:

enter: 6
interior angle: 120
exterior angle: 60
sum of interior and exterior: 180

内容的提问来源于stack exchange,提问作者hithit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:45:04