封装

封装

在面向对象的语言中,封装就是用类将数据和基于数据的操作封装在一起,隐藏内部数据,对外提供公共的访问接口。(可以总结成一句话:合理隐藏,合理暴露

其实之前学习的函数本质上也是一种封装,将实现的代码细节封装起来,调用相应的函数就可以完成想完成的事情。

类本身也是一种封装。

代码

#!/usr/bin/env python

#object是祖宗类,就算不写,也会默认继承
class Dog(object):
    def __init__(self,name):
        self.name = name
        
    def get_name(self):
        return self.name
    
    def set_name(self,value):
        self.name = value
        
    def sound_bark(self):
        print(self.get_name() + " is making sound wangwangwang")
        
class Cat(object):
    def __init__(self,name):
        self.name = name
        
    def get_name(self):
        return self.name
    
    def set_name(self,value):
        self.name = value
        
    def sound_mew(self):
        print(self.get_name() + " is making sound miaomiaomiao")
        
dog = Dog("wangcai")
cat = Cat("jiafei")

dog.get_name()
dog.sound_bark()

cat.get_name()
cat.sound_mew()

dog.set_name("erha")
print(dog.get_name())

运行结果

┌──(root㉿kali)-[~/python_code/python_3]
└─# python Animal.py
wangcai is making sound wangwangwang
jiafei is making sound miaomiaomiao
erha

使用get_name()获取名字,set_name()设置名字,从始至终属性name没有暴露过,可以进一步思考如果属性方法封装不好会出现哪些漏洞?还有封装的好处是什么?

posted on 2025-06-22 23:23  burgess0x  阅读(14)  评论(0)    收藏  举报