返回类的list参数给出TypeError

时间:2019-08-18 00:33:11

标签: python python-3.x list typeerror

我想在我的形状类中创建一个直角三角形类。三角形带有1个参数:3个坐标元组的列表。

示例:

__init__(self, vertices):
self.vertices = vertices

以下是一个实例:

t = RightAngledTriangle([(0, 0), (0, 4), (3, 4)])

该类需要具有一个将所有顶点输出为元组列表的函数,但是如果我尝试

return self.vertices

我知道

'TypeError: 'list' object is not callable'

RightAngledTriangle(Shape)类:

    def __init__(self, vertices):
        self.vertices = vertices
        self.origin = self.vertices[0]
        self.x_points = []
        self.y_points = []
        for i in self.vertices:
            self.x_points.append(i[0])
            self.y_points.append(i[1])

    def area(self):
        return 0.5 * (max(self.x_points) - min(self.x_points)) * (max(self.y_points) - min(self.y_points))

    def vertices(self):
        return self.vertices

预期输出:

t.vertices() -> [(0, 0), (0, 4), (3, 4)]

测试结果:

'list' object is not callable

1 个答案:

答案 0 :(得分:0)

您的类具有名称相同的属性vertices和方法vertices()。那是不允许的。方法area()之所以有效,是因为没有与之冲突的area属性。