Python 这是什么意思

Python 这是什么意思,python,Python,我有以下代码,不知道为什么会抛出此错误: import math class Circle: def __init__(self, radius): self.radius=radius def calcPerimeter(radius): calcPerimeter=2*(math.pi)*radius def calcArea(radius): calcArea=(math.pi)*(radius)^2

我有以下代码,不知道为什么会抛出此错误:

import math

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

    def calcPerimeter(radius):
        calcPerimeter=2*(math.pi)*radius

    def calcArea(radius):
        calcArea=(math.pi)*(radius)^2

    def __str__(self):
        msg="radius: "+str(self.radius)+" Area: "+str(self.calcArea)+" Perimeter: "+str(self.calcPerimeter)
        return msg

c1=Circle(100)
print(c1)
我得到这个错误:

radius: 100 Area: <bound method Circle.calcArea of <__main__.Circle object at 0x034E4070>> Perimeter: <bound method Circle.calcPerimeter of <__main__.Circle object at 0x034E4070>>

您实际上并没有调用该方法,只是将该方法本身传递给str


在Python中,所有方法都需要self作为它们的第一个参数,除非是静态方法,如果不使用self.property=value执行某些操作,则应该返回一些使方法有用的内容

作为改进此代码的奖励,请查找并删除


还有其他几个问题。1需要为方法添加一个自参数或使其成为静态方法;你需要从方法中返回一些东西。谢谢你,但我不知道你的建议。。。。。出现另一个错误..这应该替换msg=。。。代码段中的行。请发布错误,或者更好的是发布产生错误的完整代码。为了实现这一点,您仍然需要将self作为方法的第一个参数。我很高兴见到您非常感谢您度过了愉快的一天
radius: 100 Area: 31415.92 Perimeter: 628.3184
msg="radius: "+str(self.radius)+" Area: "+str(self.calcArea(self.radius))+" Perimeter: "+str(self.calcPerimeter(self.radius))
import math


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

    def calcPerimeter(self):
        return 2 * (math.pi) * self.radius

    def calcArea(self):
        return (math.pi) * (self.radius) ** 2

    def __str__(self):
        msg = "radius: " + str(self.radius) + " Area: " + str(self.calcArea()) + " Perimeter: " + str(self.calcPerimeter())
        return msg


c1 = Circle(100)
print(c1)