如何执行 class (python)

how to execute a class (python)

#我正在制作一个计算面积和周长或圆的程序。没有错误,但答案不是我期望的那样。

class Circle:
    def __init__ (self):
        self.radius = 0




    def setRadius(self,radius):
        self.radius = radius
  



    def calcArea (self):
        self.area = 3.14 * (self.radius ** 2)

    def calcCircumference (self):
        self.circumference = 2 * (3.14 * self.radius )



    def getRadius (self):
        return self.radius ()

    def getArea (self):
        return self.calcArea ()

    def getCircumference (self):
        self.calcCircumference ()

  

#我的执行

c1 = Circle ()
print("c1.Area",c1.getArea())

c1.setRadius(7)
print("c1.Area",c1.getArea())

#这是我执行时得到的答案。 c1.Area None c1.AreaNone

  • 根据您的 class 定义,下面是打印区域的代码。
c1 = Circle()
c1.setRadius(7)
c1.getArea()
print("c1.Area", c1.area)
c1.Area 153.86
  • 如果您希望仅通过调用 c1.getArea() 返回它,那么 class 代码中的以下更改将有助于 c1.getArea() and c1.getCircumference().
class Circle:
    def __init__ (self):
        self.radius = 0

    def setRadius(self,radius):
        self.radius = radius

    def calcArea (self):
        self.area = 3.14 * (self.radius ** 2)
        return self.area

    def calcCircumference(self):
        self.circumference = 2 * (3.14 * self.radius )
        return self.circumference

    def getRadius (self):
        return self.radius()

    def getArea (self):
        return self.calcArea()

    def getCircumference (self):
        return self.calcCircumference()

c1 = Circle ()
c1.setRadius(7)
print("c1.Area", c1.getArea())
print("c1.Area", c1.getCircumference())

# Below is the output
c1.Area 153.86
c1.Circumference 43.96

calcAreacalcCircumference 应该 return 一些值,因为这些值在其他方法中用于计算结果。此外,radius 是 属性 且不可调用。

像下面这样更改 class 定义

class Circle:
    def __init__(self):
        self.radius = 0

    def setRadius(self, radius):
        self.radius = radius

    def calcArea(self):
        self.area = 3.14 * (self.radius ** 2)
        return self.area

    def calcCircumference(self):
        self.circumference = 2 * (3.14 * self.radius)
        return self.circumference

    def getRadius(self):
        return self.radius

    def getArea(self):
        return self.calcArea()

    def getCircumference(self):
        self.calcCircumference()

那么你会得到如下结果

c1 = Circle()
print("c1.Area", c1.getArea())  # c1.Area 0.0

c1.setRadius(7)
print("c1.Area", c1.getArea())  # c1.Area 153.86