<p>我试图捕捉我在Polygon类的顶部声明的<strong>sides</strong>列表的元素,但是<strong>sideLenght</strong>方法有问题,它实际上是一个列表列表(我不明白为什么)。因此我无法计算三角形的周长。以下是我的出发点:</p>
<pre><code>t=Triangle()
t.sideLength()
t.findPeri()
</code></pre>
<p>在调用findPeri()方法之前,一切正常。我得到的回报是:</p>
<pre><code>t.findPeri()
</code></pre>
<p>我得到的信息如下:</p>
<pre><code>TypeError: unsupported operand type(s) for +: 'int' and 'list'
</code></pre>
<p>这到底是怎么回事?我该怎么解决呢?我的全部代码如下:</p>
<pre><code>class Polygon:
sides= []
def __init__(self, num_of_sides):
self.n= num_of_sides
self.num_of_sides= int(input('Enter the number of sides: '))
def sideLength(self):
"""This method appends all sides of the polygon into a list"""
for i in range(self.n):
side = int(input('Enter the length the side: ' + str(i+1) + ' : '))
Polygon.sides.append(self.side)
print Polygon.side
class Triangle(Polygon):
def __init__(self):
Polygon.__init__(self,3)
def findPeri(self):
print 'The toatal area of your perimeter is: ',sum(Polygon.sides)
</code></pre>