|
发表于 2020-5-22 08:53:47
|
显示全部楼层
类的函数setRect有参数传入,参数self就是类实例化对象的代称,因此不需要再用global或nonlocal声明其是不是本地对象,因为这俩是类实例化对象的成员变量,不是局部成员,也不是外部变量。
另外,你的程序中定义了length、width,还有self.length和self.width,这两组是不一样的
前者是类变量,属于类的属性,与实例化对象无关,后者是实例变量,会随着不同的类对象而改变。
类变量在任何地方都可以使用,使用方法:类名.变量名,这里就是Rectangle.length
实例变量在类内实例成员函数中使用,self.变量名,在类外使用之前必须现有实例化类对象,类对象.变量名
- 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
-
- a=Rectangle()
- a.setRect()
- print(Rectangle.length)#这个打印出来的是5
- print(a.length)#这个打印出来的是调用a.setRect()时,你输入的值
复制代码 |
|