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

主宰稳场 提交于 2020-01-03 20:01:07

1.定义

将内容封装到某个地方,以后再去调用被封装在某处的内容。

2.方法

在使用面向对象的封装特性时,需要把对象和属性捆绑在一起,并且可以调用对象的属性内容;

(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)调用封装的属性信息

对象名.属性名
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
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,,去玩游戏
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!