多态性:添加新属性 (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
,无法调用。
我还在研究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
,无法调用。