面向对象三大特性之--封装

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,,去玩游戏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值