7.26 面向对象_封装_property_接口


封装

封装 就是隐藏内部实现细节,

将复杂的,丑陋的,隐私的细节隐藏到内部,对外提供简单的访问接口

为什么要封装

1.保证关键数据的安全性

2.对外部隐藏实现细节,隔离复杂度

什么时候应该封装

1.当有一些数据不希望外界可以直接修改时

2.当有一些函数不希望给外界使用时

如何使用封装

语法:

class Person:
        def __init__(self,id_number,name,age)
        self.__id_number = id_number
        # 比如这里是比较重要的身份证号码,不能随便调用
        # 给属性或者方法前面加上 __    def show_id(self):
        print(self.__id_number)

    def __say_hi(self):
        print(f"hi, 我是{self.name}")


p = Person('35676549809711', 'bitten', 29)
p.id_number = '3756789'  # 这里其实是给对象加了个属性 id_number(对象属性的增删改查)
print(p.id_number)
# 222
p.show_id()
# 111111111111111111  # 并没有受到影响
# p.__id_number  # 报错,pycharm没有提示也找不到,AttributeError: 'Person' object has no attribute '__id_number'
# p.__say_hi  # 报错,AttributeError: 'Person' object has no attribute '__say_hi'双下划线,外界就访问不到了
        self.name = name
        self.age = age
   
p = Person("1111111111111","jack",29)

p.id_number = "222"

被封装的内容的特点:

1.外界不能直接访问

2.内部依然可以使用

权限

利用好封装的特性就可以控制属性的权限(接着往下看)

猜你喜欢

转载自www.cnblogs.com/PowerTips/p/11255932.html