一、类的定义(相当于多个函数集合的定义)
定义一个矩形类,包含两个数据成员(属性参数):宽度和高度:该类提供两种方法 (功能函数):求面积和周长
class Rectangle: #定义一个类Rectangle
#(1)定义初始化方法(所有的类都有一个初始化方法)
def __init__(self,width,height): #第一个属性参数必须是self(类对象)
self.width = width #给实例属性赋初值(将实参传递给形参)
self.height = height
#(2)定义实例方法:
def getArea(self): #至少要有一个参数self
S = self.width * self.height #求面积值并赋值给变量S,用self,属性访问
return S #返回S值
def getPerimeter(self):
C = 2 * (self.width + self.height)
return C
二、创建类对象(相当于函数的调用)
rect = Rectangle(10,6) #创建Rectangle的对象(具体值即实参)rect
print('此矩形的宽为:',rect.width) #在函数外部调用属性要用对象名.属性名
print('此矩形的高为:',rect.height)
print('此矩形的面积为:',rect.getArea())
print('此矩形的周长为:',rect.getPerimeter()) #调用(访问)方法一定要带括号
结果为:
此矩形的宽为: 10
此矩形的高为: 6
此矩形的面积为: 60
此矩形的周长为: 32
三、类的属性(变量)
1、实例属性:在方法内部通过‘self.属性变量名’定义和访问的变量(在外部通过‘对象名.变量名’访问)
2、类属性:在所有方法之外定义的属性(变量)
四、类的方法(函数)
1、定义:与类相关的函数
2、类型:实例方法,类方法,静态方法
3、实例方法:至少包含一个对象参数self放在第一个,在内部通过‘self.方法()’调用,在外部通过‘对象名.方法()’调用
五、类的继承、重写和多态
1、继承:子类继承父类的方法
2、重写:子类可以重新子类的方法(方法名称相同)
3、多态:子类中方法名称相同但功能不同
4、实例如下:
#定义一个父类Person
class Person:
#(1)初始化方法
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
#(2)实体方法:
def working(self):
print(self.name,"正在战场!")
def show(self):
print('姓名:{}\n年龄:{}\n性别:{}'.format(self.name,self.age,self.sex))
#定义一个子类Student
class Student(Person): #定义一个父类为Person的子类Student
#(1)初始方法
def __init__(self,name,age,sex,major):
super().__init__(name,age,sex) #用super()内置函数继承父类Person的初始方法
self.major = major #添加类成员(重写)
#(2)实例方法
def show(self): #方法的重写
Person.show(self) #用“父类名.方法”,方法继承
print('专业:',self.major) #添加方法功能
s = Student('Praseodymium','21','男','数字科学') #创建类对象s
s.working() #调用父类方法
s.show() #调用子类方法
运行结果为:
Praseodymium 正在战场!
姓名:Praseodymium
年龄:21
性别:男
专业: 数字科学