huyanmin 发表于 2021-11-18 14:35:00

python 36可习题,小甲鱼源代码求详解

本帖最后由 huyanmin 于 2021-11-18 14:36 编辑

class Rectangle:
    length = 5
    width = 4
   
    def setRect(self):
      print("请输入矩形的长和宽...")
      self.length = float(input('长:'))
      self.width = float(input('宽:'))

    def getRect(self):
      print('这个矩形的长是:%.2f,宽是:%.2f' % (self.length, self.width))
      
    def getArea(self):
      return self.length * self.width#方法即是函数,为什么此处能引用局部变量self.length 和self.width呢?在这个类中并没有__init__()方法来设置self.length 和 self.width啊?
                                       

Gacy 发表于 2021-11-18 16:01:20

为什么不能呢,没有真正意义上的私有

myqf123 发表于 2021-11-18 18:03:42

方法跟函数其实几乎完全一样,但有一点区别是方法默认有一个 self 参数,方法中对属性的引用形式需加上 self,如 self.width,之所以在这个类中并没有__init__()方法来设置self.length 和 self.width,是因为他不需要在建立实例对象的时候给参数,而是通过方法来设置相应的属性。
页: [1]
查看完整版本: python 36可习题,小甲鱼源代码求详解