Python入门学习笔记——18.面向对象-OOP-三大特性

####################################
# 1.封装

'''
封装就是使用特殊的语法,对成员属性和成员方法进行包装,达到保护和隐藏的目的
但是一定注意,不能把成员全部封装死,就失去意义了
被封装的成员主要是供类的内部使用
被特殊语法封装的成员,会有不同的访问的权限


封装的级别
    成员   ==> 公有的
    _成员  ==> 受保护的 (约定俗成,而python没有具体实现)
    __成员 ==> 私有的
          公有的 public    受保护的 protected     私有的 private
在类的内部      OK              OK                 OK
在类的外部      OK              No(python可以)      No

了解即可:
在python中给成员进行私有化,其实就是改了成员的名字
私有化 ==> _类名__成员

'''

class Person():
    # 成员属性
    name = '名字'
    _age = '年龄'  # 在成员前面 加一个 _ 受保护的成员
    __sanwei = '三维'# 在成员前面 加两个 __ 私有的成员

    # 初始化方法
    def __init__(self,n,a,s):
        self.name = n
        self._age = a
        self.__sanwei = s

    def func(self):
        # 在类的内部可以操作任意成员
        print(self.__sanwei)
        self.__kiss()

    # 成员方法
    def say(self):
        print('聊聊人生和理想。。。')

    def _sing(self):
        print('高歌一曲,豪放一生。。。')

    def __kiss(self):
        print('打个kiss 。。。。')


#实例化对象
ym = Person('杨幂',28,'60 55 60')

# print(ym._age)   # 在类的外部不能操作 受保护的成员 (但是Python中可以)
# print(ym.__sanwei)# 在类的外部不能操作  私有成员属性

# print(ym._Person__sanwei) # 可以使用特殊的语法获取私有成员

# ym._sing()    # ok
# ym.__kiss() # X  在类的外部不能操作  私有成员属性

# ym.func()

# 查看对象的所以成员
print(ym.__dict__)  # 可以获取当前对象的所有成员信息
# print(Person.__dict__) # 可以获取当前类的所有成员信息


####################################
# 2.面向对象 三大特性  - 继承

'''
当子类继承父类后,就可以去使用父类中的成员属性和方法 (除了私有成员)
子类可以有自己独立的成员,也可以没有
子类继承父类后,重新定义了父类中的方法,这种情况称为对父类方法的重写
在子类中可以去直接调用父类中定义的方法 super().父类方法名()
子类继承父类后,定义类父类中没有的方法,这种情况称为 对父类的 扩展
一个父类可以被多个子类继承
子类调用父类的方法时,如果该方法有参数要求,也需要传递参数
'''

# 猫科动物
class maoke():
    # 属性
    maose 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值