雨留下的印记 发表于 2020-5-1 20:39:19

36讲课后作业

class Rectangle:
    #属性
    length = 10
    width = 8

    #方法
    def setRect(self):
      print('请输入矩形的长和宽')
      a = input('长:')
      self.length = float(a)
      self.width = float(input('宽: '))

    def getRect(self):
      print('这个矩形的长为%.2f,宽为%.2f' % (self.length , self.width))

    def getArea(self):
      area = self.length * self.width
      print('这个矩形面积为:%.2f' % area)
      return


以上代码中 再def setRect()函数中,length和width不是局部变量吗?为什么会变为全局变量,通过调用函数改变长宽,外部的长宽也改变了。

永恒的蓝色梦想 发表于 2020-5-1 20:40:58

举个例子

zltzlt 发表于 2020-5-1 20:44:54

self.length 表示给实例变量 length 赋值,这并不是全局变量,在实例方法中用 self. 赋值的变量都是实例变量,在这个类的实例方法中都通用。

redforce 发表于 2020-5-1 20:45:13

是这个类Rectangle的局部变量,类中所有的函数都能用
你重新定义个类,就不能用那俩变量了
页: [1]
查看完整版本: 36讲课后作业