面向对象 -- 封装

2019-01-10  本文已影响0人  __深蓝__

面向对象有三大特性:封装、继承、多态

  • 封装:体现类的可见性
  • 继承:体现类的可扩展性
  • 多态:体现类的可变性
私有属性和私有方法

在实际开发中,对象的某些属性方法,希望只在类内部使用,而不希望在外部被访问到,这时,就可以采用封装将属性或方法限制在类的内部使用
私有属性就是对象不希望公开的数据成员
私有方法就是对象不希望公开的方法

在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法

class Women:
    def __init__(self, name):
        self.name = name
        self.__age = 18
    def __secret(self):
        print("我的年龄是 %d" % self.__age)

xiaofang = Women("小芳")
# print(xiaofang.__age)  # 私有属性,外部不能直接访问
# xiaofang.__secret()  # 私有方法,外部不能直接调用

如果外部代码要获取__age属性怎么办?可以给Women类增加get_age方法:

class Women():
    def get_age(self):
        return self.__age

如果外部代码要修改__age属性怎么办?可以给Women类增加set_age方法

class Women():
    def set_age(self, age):
        self.__age = age




- end -

上一篇 下一篇

猜你喜欢

热点阅读