Skip to main content
 首页 » 编程设计

python:如何使用正确的数据类型

2025年05月04日4598°冷暖

我想在 python+matplotlib 中同时绘制数百个 2D 三角形(带标签),所以我要把这些三角形放在一个列表中:

三角形 =[ (label_1, A, B, C) , (label_2, D,E,F),...]

这里在 (label , A, B, C) 中,A,B,C 是三角形的三个顶点,所以它们就像一对实数,如 (x,y),而 label 可能是一个字符串(三角形的颜色或名称)

现在问题出现了:我如何告诉 python A=(x,y) 是平面中的一个点,而不仅仅是“两个元素的元组”? 由于我需要执行操作“A+0.2*B”,这会导致错误:“无法将序列乘以‘float’类型的非整数

提前致谢!

请您参考如下方法:

您可以创建一个自定义的 Point 类,并定义加法和乘法的行为:

class Point: 
    def __init__(self, x, y): 
        self.x = x 
        self.y = y 
    def __mul__(self, value): 
        return Point(self.x*value, self.y*value) 
    def __rmul__(self, value): 
        return self.__mul__(value) 
    def __add__(self, other): 
        return Point(self.x+other.x, self.y+other.y) 
    def __repr__(self): 
        return "Point({}, {})".format(self.x, self.y) 
 
a = Point(1,2) 
b = Point(23, 42) 
x = a + 0.2 * b 
print x 
#result: Point(5.6, 10.4)