Py学习  »  Python

python 3类和子类:创建三角形和正方形

Tuong Bui • 5 年前 • 1242 次点击  

我正在自学python类和子类。我想在书上做一个问题,但我被卡住了。我试图创建3个三角形和4个正方形,并打印出一个三角形和一个正方形的所有属性,但我不确定如何创建。谢谢你的帮助!。这本书给了我这个:

> class Shape(object):
>       def __init__(self, corner=10):
>        self.__corner= corner
>        self.__sides=corner

以下是我目前掌握的情况:

class Shape(object):
      def __init__(self, corner=10):
       self.__corner= corner
       self.__sides=corner

  def set_corner(self, corner):
    self.__corner= corner
  def set_sides(self, corner):
    self.__sides= corner
  def get_corner(self):
    return self.__corner
  def get_sides(self):
    return self.__sides

class Square(Shape):
  def __init__(self, corner, area):
    Shape.__init__(self, corner=10)
    self.__area=area
  def set_area(self,area):
    self.__area= area
  def get_area(self,area):
    return self.__area

class Triangle(Shape):
  def __init__(self, corner, height):
    Shape.__init__(self, corner=10)
    self.__height=height
  def set_height(self,height):
    self.__height= height
  def get_height(self,height):
    return self.__height
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43730
 
1242 次点击  
文章 [ 1 ]  |  最新文章 5 年前
davedwards
Reply   •   1 楼
davedwards    6 年前

使用代码(只需少量修改)有一种方法:

class Square(Shape):
    def __init__(self, corner, area):
        Shape.__init__(self, corner = 10)
        self.__area = area
    def set_area(self):
        self.__area = area
    def get_area(self):
        return self.__area

class Triangle(Shape):
    def __init__(self, corner, height):
        Shape.__init__(self, corner = 10)
        self.__height = height
    def set_height(self):
        self.__height = height
    def get_height(self):
        return self.__height

# example triangle
t1 = Triangle(3, 50)

# example square
s1 = Square(5, 20)

# print the attributes
print('Triangle 1 height: {height} units.'.format(height=t1.get_height()))
print('Square 1 area: {area} sq. units.'.format(area=s1.get_area()))

印刷品:

Triangle 1 height: 50 units.
Square 1 area: 20 sq. units.

可能需要调整这些值以获得合理的结果。