【20200809】第十二讲 面向对象中(学习笔记)

1.特殊方法

  • 第一个 name是必须的。
    第二个 name是不同的。
    第三个 这种添加name的方式非常容易出现错误。
    我们希望在创建对象的时候,必须设置name属性。如果不设置对象都无法创建。
  • 学习特殊方法:
    1.特殊方法什么时候调用?在对象一创建的时候调用,类中的代码块先执行。
    2.特殊方法有什么作用?
  • 类的基本结构:
class 类名(父类)

    公共属性
    
    # 对象初始化的方法
    def __init__(self,......):
    
        ......
    
    # 其他的方法
    def method1(self,....)
    
        ......
        
    def method2(self,....)
    
        ......    

类的特殊方法1
类的特殊方法2

2.封装

  • 目前我们可以直接通过 对象.属性的方式来修改属性值,这种方式导致对象中的属性可以随意修改 非常不安全。
    现在我们需要一种方式来增强数据的安全性
    1.属性不能随意修改。(我让你改才能改,我不让你改你就别改了)
    2.属性不能改为任意值。
    封装的引入
    封装的引入_结果
  • 封装是什么?
    封装是面向对象三大特性之一。
    封装指的是隐藏对象中一些不希望被外部访问到的属性或方法。
  • 如何隐藏属性?
    将对象的属性名,修改成一个外部不知道的名字。
    如何获取(修改)对象中的属性。
    需要我们提供一个getter和setter方法访问外部属性和修改属性。
  • 使用封装,确实增加了类定义的复杂程度,但是它也确保了数据的安全。
    1.隐藏了属性名,使调用者无法随意修改对象的属性。
    2.增加了getter和setter方法,很好的控制了属性是否是只读的。
    如果希望属性只读,则可以直接去掉setter方法。
    如果希望属性不能被外部访问,则可以直接去掉getter方法。
    3.使用setter方法设置属性,可以增加数据的验证,确保数据的值是正确的。
    4.使用getter方法和setter方法获取和设置属性的时候,可以在读取属性和修改属性的时候做一些其他的操作。
    封装1
    封装2
  • 可以对对象的属性使用双__下划线开头(比较少用)。
    双下划线的属性是对象的隐藏属性,隐藏属性只能在类的内部访问,无法通过对象访问。
    其实隐藏属性只不过是Python自动为属性修改了一个名字。
    实际上将改的名字改为了 _类名__属性名 例如__name -> _Person__name。
  • 一般我们会将一些私有的属性(不希望被外部访问)以_开头。
    封装3

3.装饰器property

  • @property 将方法转换为相同名称的只读属性。
    装饰器1
    装饰器2

课堂复习

  • 特殊方法:
  1. init
  2. 怎么去学习特殊方法
    (1)什么时候调用?创建对象的时候调用
    (2)有什么作用?初始化属性值
  • 封装
  1. 出现封装的原因:我们需要一种方式来提高数据的安全性。
  2. getter()方法:获取对象中指定的属性
  3. setter()方法:用来设置对象中的属性
  4. __xxx —> __类名__xxx 一般写一个就OK了
  • 装饰器property
  1. 将方法转换为相同名称的只读属性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值