关于python:AttributeError:’Cal’对象没有属性’area’

AttributeError: 'Cal' object has no attribute 'area'

1
2
3
4
5
6
7
8
9
10
11
12
class Cal(object):
    pi = 3.142

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

        def area():
            return self.pi * (self.radius**2)


a = Cal(32)
a. area()

我跑步时出错====回溯(最近一次呼叫的最后一次):文件"k:/py projects/mini/prac.py",第12行,inA.面积(32)attributeError:"cal"对象没有属性"area"


首先,您在__init__()的内部定义了area()。这使得area()只能从那里进入。一定要把它放在课堂上。

除此之外,您还没有在area()中提供自变量。这样,您就无法从方法内部访问self-it。

更正后的代码为:

1
2
3
4
5
6
7
8
9
10
11
12
class Cal(object):
    pi = 3.142

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

    def area(self):
        return self.pi * (self.radius**2)


a = Cal(32)
a. area()

您在初始值设定项(__init__()函数)中定义了area()函数,使其成为该范围内的局部函数,而不是Cal的方法。

把它放在外面。

编辑:您还需要添加self作为area()的参数。