1.定义
将内容封装到某个地方,以后再去调用被封装在某处的内容。
2.方法
(1)构造方法和析构方法
1)构造方法
_ _ init_ _ (self) :构造函数,自动执行构造方法里的内容,将对象和类绑定在一起;
构造方法在实例化对象的时候执行;在最开始执行
#构造方法:__init__(self)
#创建类
class student:
def __init__(self): #构造函数,在实例化类的时候执行
#self:是实例化出的对象,系统自动将实例化出的对象传递给构造方法
print('self:',self)
print('正在运行构造函数')
#实例化
stu1=student()
print('stu1:',stu1)
结果
self: <__main__.student object at 0x00000196FB22D748>
正在运行构造函数
stu1: <__main__.student object at 0x00000196FB22D748>
2)析构方法
_ _ del _ _ (self):析构函数,用来回收对象释放资源
析构方法在类实例化对象的时候执行,在最后执行
# 析构方法
class student:
def __init__(self):
print('我是构造函数')
def __del__(self):
print('我是析构函数')
if __name__ == '__main__':
s=student()
执行结果
我是构造函数
我是析构函数
从执行结果可以看出,只要实例化对象就会执行构造函数和析构方法
(2)调用封装的属性信息
对象名.属性名
self.属性名
self.方法名()
定义属性时,如果定义在构造函数内,需要加self,否则不加;
#定义类
class Student:
#定义属性
def __init__(self,name,score1,score2): #实例化出的self对象具有name,score1,score2这些属性
self.name=name #进行封装
self.score1=score1
self.score2=score2
#定义方法
def sum_score(self):
result=self.score1+self.score2 #调用封装信息
return result
def __del__(self):
# 析构函数,回收对象释放资源
del self.name # 删除对象
del self.score1
del self.score2
stu1=Student(name='张三',score1=100,score2=200)
sum_score=stu1.sum_score() #调用封装信息
print(sum_score)
结果
300
3.小练习
创建一个类People,拥有的属性为姓名, 性别和年龄, 拥有的方法为购物,玩游戏,学习;
实例化对象,执行相应的方法。
显示如下:
小明,18岁,男,去购物
小王,22岁,男,去购物
小红,10岁,女,在学习
class People:
def __init__(self,name,gender,age):
self.name=name
self.gender=gender
self.age=age
def go_shopping(self):
print('%s,%d岁,%s,去购物'%(self.name,self.age,self.gender))
def play_game(self):
print('%s,%d岁,%s,去玩游戏'%(self.name,self.age,self.gender))
def are_learning(self):
print('%s,%d岁,%s,在学习'%(self.name,self.age,self.gender))
if __name__ == '__main__':
stu1=People('小明','男',18)
stu1.go_shopping()
stu2=People('小红','女',18)
stu2.play_game()
结果
小明,18岁,男,去购物
小红,18岁,女,去玩游戏