多态性:添加新属性 (Python)

Polymorphism: Adding new attribute (Python)

我还在研究python中的多态性。 我试图根据这个 code 添加颜色属性,但我失败了。 这是我的代码:

class Shape:
    width = 0
    height = 0
    color = 0
 
    def area(self):
        print('Parent class Area ... ')
    
    def get_color(self):
        print('Parent class Color ...')
 
 
class Rectangle(Shape):
 
    def __init__(self, w, h, c):
        self.width = w
        self.height = h
        self.color = c
 
    def area(self):
        print('Area of the Rectangle is : ', self.width*self.height)
    
    def get_color(self):
        print('Color of Rectangle: ', self.color)
 

class Triangle(Shape):
 
    def __init__(self, w, h, c):
        self.width = w
        self.height = h
        self.color = c
 
    def area(self):
        print('Color of Rectangle: ', self.color)
        print('Area of the Triangle is : ', (self.width*self.height)/2)

    def color(self):
        print('Color of Triangle: ', self.color)

结果:

TypeError: 'str' object is not callable

我在这方面还是新手。感谢您之前的帮助;)

在您的 Triangle class 中,您有一个名为 color 的方法和一个名为 color.
的 属性 将 color 方法更改为 get_color 它将解决您的问题。

 def get_color(self):
        print('Color of Triangle: ', self.color)

python 认为您正在调用名为 color 的 属性,这是一个 string,无法调用。