你的class有一些问题。见以下评论class Rectangle:
# Init function
def __init__(self):
# The only members are length and width
self.length = 1
self.width = 1
# Setters
def set_width(self, width):
self.width = width
def set_length(self, length):
self.length = length
# Getters
def get_width(self):
return self.width
def get_length(self):
return self.length
def get_area(self):
return self.length * self.width
# String representation
def __str__(self):
return 'length = {}, width = {}'.format(self.length, self.width)
测试类>>> a = Rectangle()
>>> a.set_width(3)
>>> a.set_length(5)
>>> a.get_width()
3
>>> a.get_length()
5
>>> a.get_area()
15
>>> print(a)
length = 5, width = 3
正如其他人所指出的,setter和getter在Python中是多余的,因为所有成员变量都是公共的。我知道这些方法对你的任务是必需的,但是在将来,你知道你可以省去麻烦,直接访问成员>>> a.length # Instead of the getter
5
>>> a.length = 2 # Instead of the setter
>>> a.length
2