Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        5年前关闭。
                                                                                            
                
        
我真的不是很了解课堂,任何帮助都会很棒。

Rectangle类应具有以下私有数据属性:


__length
__width


Rectangle类应该具有创建这些属性并将其初始化为1的__init__方法。它还应该具有以下方法:


set_length –此方法为__length字段分配一个值
set_width –此方法为__width字段分配一个值
get_length –此方法返回__length字段的值
get_width –此方法返回__width字段的值
get_area –此方法返回Rectangle的面积
__str__ –此方法返回对象的状态




class Rectangle:

  def __init__(self):
      self.set_length = 1
      self.set_width = 1
      self.get_length = 1
      self.get_width = 1
      self.get_area = 1

def get_area(self):
    self.get_area = self.get_width * self.get_length
    return self.get_area


def main():

  my_rect = Rectangle()

  my_rect.set_length(4)
  my_rect.set_width(2)

  print('The length is',my_rect.get_length())
  print('The width is', my_rect.get_width())

  print('The area is',my_rect.get_area())
  print(my_rect)

  input('press enter to continue')

最佳答案

您的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


正如其他人指出的那样,在Python中,setter和getter都是多余的,因为所有成员变量都是公共的。我知道您需要分配这些方法,但是将来,您知道可以节省麻烦,而直接访问成员即可

>>> a.length       # Instead of the getter
5
>>> a.length = 2   # Instead of the setter
>>> a.length
2

关于python - 创建一个Rectangle类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27323373/

10-12 16:33