写一个课时出错

Ric*_*ard 1 python class

我正在http://www.sthurlow.com/python/lesson08/上在线阅读教程,我相信我理解类在python中是如何工作的,至少在某种程度上,但是当我运行这段代码时:

class Shape:
    def __init__(self,x,y):
        self.x = x
        self.y = y
    description = "This shape has not been described yet"
    author = "Nobody has claimed to make this shape yet"
    def area(self):
        return self.x * self.y
    def perimeter(self):
        return 2 * self.x + 2 * self.y
    def describe(self,text):
        self.description = text
    def authorName(self,text):
        self.author = text
    def scaleSize(self,scale):
        self.x = self.x * scale
    self.y = self.y * scale
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Traceback (most recent call last):
  File "Y:/python/Shape.py", line 1, in -toplevel-
    class Shape:
  File "Y:/python/Shape.py", line 17, in Shape
    self.y = self.y * scale
NameError: name 'self' is not defined
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒

谢谢

理查德

Kla*_*sen 10

你需要缩进最后一行.

def scaleSize(self,scale): 
    self.x = self.x * scale 
self.y = self.y * scale 
Run Code Online (Sandbox Code Playgroud)

应该

def scaleSize(self,scale): 
    self.x = self.x * scale 
    self.y = self.y * scale 
Run Code Online (Sandbox Code Playgroud)