2020年5月30日 星期六

python 物件 class

class Polygon:
    def __init__(self,*p):
        self.p = p
    def __repr__(self):
        return perimeter()
    def __str__(self):
        return "perimeter is " + "{:>3.2f}".format(self.perimeter())
    def perimeter(self):
        p = self.p
        #計算兩點距離(X1-X2)平方+(Y1-Y2)平方,開根號
        i = len(p) - 1
        d = ((p[0][0] - p[i][0]) ** 2 + (p[0][1] - p[i][1]) ** 2) ** 0.5
        for i in range(1,len(p)):
            d += ((p[i][0] - p[i-1][0]) ** 2 + (p[i][1] - p[i-1][1]) ** 2) ** 0.5
        return d
        
        
triangle = Polygon((0,0), (3,0), (0,4))
diamond = Polygon((-1,0), (0,-1), (1,0), (0,1))
print(triangle.perimeter())
print(diamond.perimeter())
print(triangle)
print(diamond)

沒有留言:

張貼留言