为对象定义类
类定义对象的特征和行为
python会在运行时为每个对象赋予一个独特的id来辨识这个对象
数据域:即变量or实例变量,用于描述对象的状态,例如圆的radius,矩形的height和width
python采用方法来定义对象的行为,方法亦即函数
python类使用变量存储数据域,定义方法来完成行为,类定义了对象的数据域和方法,对象是类的一个实例(对象就是实例,实例就是对象),可以创建一个类的多个对象,创建类的实例的过程称为实例化。
定义类
初始化程序:__ init __(双下划线)
语法
class ClassName:
initializer
methods
#circle.py
import math
class Circle:
#constuct a circle object
def __init__(self, radius = 1):
self.radius = radius
def getPerimeter(self):
return 2*self.radius*math.pi
def getArea(self):
return self.radius*self.radius*math.pi
def setRadius(self, radius):
self.radius = radius
构造对象
在内存中为类创建一个对象
调用类的__init__方法来初始化对象
所有方法,包括初始化程序,都有第一个参数self,指向调用方法的对象。
__ init __方法中的self参数被自动地设置为引用刚被创建的对象,我们可以为这个参数设置任何名字,但是经常使用的就是self。
构造方法:
类名(参数)
1.在内存中创建类的对象(实例)
2.调用类的 __ init __方法初始化对象,self参数自动设置为引用刚创建的对象
访问对象成员
访问一个对象的数据域并调用对象的方法
语法:
objectRefVar = ClassName(arguments) #类的命名通常采用首字母皆大写的方式,变量的命名采用驼峰命名法
可以使用圆点运算符(.)访问对象的数据域并调用他的方法,也被称为对象成员访问运算符。
objectRefVar.datafield
objectRefVar.method(args)
>>> from circle import circle
>>> c = circle(5)
>>> c.radius
5
>>> c.getPerimeter()
31.415926
>>> c.getArea()
78.539816
>>>
如果我们创建对象不需要被变量引用的话,那么就不用特意赋值给变量了。
print("Area is", Circle(5).getArea())
这种方式创建的对象叫做匿名对象。
self参数
self是指向对象本身的参数,可以用self访问在类中定义的对象成员,包括实例变量和实例方法。
一旦实例变量被创建,那么它的作用域就是整个类,例如self.x
def ClassName:
def __init__(self, ...):
self.x = 1 #创建/修改x
...