更改类变量python

时间:2018-08-08 06:55:16

标签: python oop

我正在编写一个脚本以读取DXF文件并返回形状的长度和面积,以便可以自动计算激光切割零件的价格。

弧应从dxf文件中获取弧名称,中心点,半径,起始角度,终止角度。 弧应计算弧的起点和终点。

问题是角度是任意的,所以起点和终点是任意的, 这样一来,我很难将弧形连接在一起以形成完整的图形, 如果我注意到起点和终点向后,我需要一种机制来切换起点和终点。 我试图在arc类中编写一个函数,以切换起点和终点 但这没用 我对OOP不太满意,请帮助

附加代码

    class arc:
       def __init__(self, name, center_point, radius, angles):
    self.name = name
    self.center_point = center_point
    self.radius = radius
    self.starting_angle = angles[0]
    self.ending_angle = angles[1]

    starting_angle = angles[0]
    ending_angle = angles[1]
    self.starting_point = center_point[0]+radius * math.cos((starting_angle)*((math.pi)/(180))),center_point[1]+radius * math.sin((starting_angle)*((math.pi)/(180)))
    self.ending_point = center_point[0]+radius * math.cos((ending_angle)*((math.pi)/(180))),center_point[1]+radius * math.sin((ending_angle)*((math.pi)/(180)))

    starting_point =center_point[0]+radius * math.cos((starting_angle)*((math.pi)/(180))),center_point[1]+radius * math.sin((starting_angle)*((math.pi)/(180)))
    ending_point = center_point[0]+radius * math.cos((ending_angle)*((math.pi)/(180))),center_point[1]+radius * math.sin((ending_angle)*((math.pi)/(180)))
    self.length = math.sqrt((starting_point[0]-ending_point[0])**2+(starting_point[1]-ending_point[1])**2)

我想要一个名为switch的功能

这是应该如何工作的:

    arc1.starting_point = (0,0)
    arc1.ending_point = (1,1)
    print(arc1.starting_point, arc1.ending_point)
    #Desired Output:
    ((0,0),(1,1))

    arc1.switch()
    print(arc1.starting_point, arc1.ending_point)

    #Desired Output:
    ((1,1),(0,0))

1 个答案:

答案 0 :(得分:1)

您可以交换具有同时赋值的两个变量的值:

read.mulTree

如此

mulTree

应该这样做。