【问题标题】:Python Programming Help for a beginner?对初学者的 Python 编程帮助?
【发布时间】:2013-02-17 20:28:35
【问题描述】:

所以我需要找到矩形的面积。我必须在 Rectangle 类中放置一个名为“CalcArea()”的方法,该方法乘以宽度 * 高度。我不知道如何做到这一点,而且我很迷茫,这本书根本没有解释如何做到这一点。这是我的代码:

class Point():
    x = 0.0
    y = 0.0

    def __init__(self, x, y):
        self.x = x
        self.y = y
        print("Point Constructor")

    def ToString(self):
        return "{X:" + str(self.x) + ",Y:" + str(self.y) + "}"

class Ellipse(Point):
    radiusV = 0.0
    radiusH = 0.0

    def __init__(self, x, y, radiusV, radiusH):
        super().__init__(x,y)
        self.radiusV = radiusV
        self.radiusH = radiusH
        print("Ellipse Constructor")

    def ToString(self):
        return super().ToString() + \
                ",{Radius: Vertical = " + str(self.radiusV) + ", Radius: Horizontal = " +     str(self.radiusH) + "}"
p = Point(50,50)
print(p.ToString())
e = Ellipse(80,80,60,80)
print(e.ToString())

class Size():
    width = 0.0
    height = 0.0

    def __init__(self, width, height):
        self.width = width
        self.height = height
        print ("Size Constructor")

    def ToString(self):
        return "{Width = " + str(self.width) + \
               ", Height = " + str(self.height) + "}"

class Rectangle(Point, Size):
    area = 0.0

    def __init__(self, x, y, width, height):
        Point.__init__(self,x,y)
        Size.__init__(self,width,height)
        print("Rectangle Constructor")


    def ToString(self):
        return Point.ToString(self) + "," + Size.ToString(self) + 
s = Size (80,70)
print(s.ToString())

r = Rectangle(200,250,40,50)
print(r.ToString())

【问题讨论】:

  • 您的代码缩进不正确。你能纠正吗?不要省略空格,最好还是按原样粘贴代码。
  • @sidi 除非它有制表符而不是空格,否则在粘贴之前将其修复为只有空格。
  • 老实说,在编辑器中它很好,但网站在获取代码时遇到了很大的麻烦,所以我不得不手动在每一行中放置空格......主要是烦人的大声笑。但是仍然有人可以帮助解决实际问题吗?

标签: python methods area


【解决方案1】:

在您的Rectangle 类中使用以下方法

def calcArea(self):
    return self.width * self.height

要打印该区域,只需调用 print mRectangle.calcArea()

其中mRectangleRectangle 类的一个实例。

self.widthself.height 可供您使用,因为 Rectangle 继承自 Size 类,并且 Size 在其构造函数中适当设置了实例变量 widthheight。这些值可供您使用,因为RectangleSize 的子类。

此外,您在 Size 类中的 width = 0height = 0 可能不会完全按照您的想法进行。它们是 Python 中的静态变量或类变量,与 self.widthself.height 完全不同,这里有一个例子来说明

>>> class MyClass():
...     a = 0
...     def __init__(self):
...         self.a = 5
...     def echo(self):
...         print MyClass.a, self.a
... 
>>> instance = MyClass()
>>> instance.echo()
0 5
>>> instance.a
5
>>> MyClass.a
0
>>> 

在 python 中,您可以使用 ClassName.Variable 语法访问类或静态变量,并且无需创建该类的对象即可访问。其中作为实例变量只能用类的实例调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多