• 84-面向对象:封装


    面向对象3大特性之一:封装
    封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。

    所以,在使用面向对象的封装特性时,需要:
    1. 将内容封装到某处
    2. 从某处调用被封装的内容

    第一步:将内容封装到某处:

    # 创建类
    class Foo:
        def __init__(self, name, age):  # 这是构造方法,根据类创建对象时自动执行
            self.name = name
            self.age = age
    
    # 根据类FOO创建对象
    # 自动执行Foo类的 __init__方法
    obj1 = Foo('xiaohe',18)  # 将xiaohe和18分别封装到obj1 和 self的name和age属性中
    
    # 根据类FOO创建对象
    # 自动执行Foo类的 __init__方法
    obj2 = Foo('xiaoming',20)  # 将xiaoming和20分别封装到obj1 和 self的name和age属性中

     第二步:从某处调用被封装的内容:

    调用被封装的内容时,有两种情况:
      1. 通过对象直接调用
      2. 通过self间接调用


    1、通过对象直接调用被封装的内容:

    class Foo:
        def __init__(self, name, age):  
            self.name = name
            self.age = age
    
    obj1 = Foo('xiaohe',18)
    print(obj1.name)  # 直接调用obj1对象的name属性
    print(obj1.age)  # 直接调用obj1对象的age属性
    
    obj2 = Foo('xiaoming',20)
    print(obj2.name)  # 直接调用obj2对象的name属性
    print(obj2.age)  # 直接调用obj2对象的age属性

    2. 通过self间接调用:

    class Foo:
        def __init__(self, name, age):  
            self.name = name
            self.age = age
    
        def detail(self):
            print(self.name)
            print(self.age)
    
    # Python默认会将obj1传给self参数,即:obj1.detail(obj1),所以,此时方法内部的 self = obj1,
    # 即:self.name 是 xiaoming ;self.age 是 18
    obj1 = Foo('xiaoming', 28)
    obj1.detail()
    
    # Python默认会将obj2传给self参数,即:obj1.detail(obj2),所以,此时方法内部的 self = obj2,
    # 即:self.name 是 xiaohe ; self.age 是 78
    obj2 = Foo('xiaohe', 30)
    obj2.detail()

    对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封装的内容。

  • 相关阅读:
    loadrunner提高篇
    loadrunner提高篇
    loadrunner提高篇
    STM32F4XX高效驱动篇1-UART
    系统封装接口层 cmsis_os
    uCGUI 按键窗口切换机制
    xming+xshell让linux变成桌面化操作
    jmeter做WebSocket请求解读
    性能监控工具spotlight操作
    linux性能监控命令,磁盘,网络,cpu,内存
  • 原文地址:https://www.cnblogs.com/hejianping/p/11119847.html
Copyright © 2020-2023  润新知