zoukankan      html  css  js  c++  java
  • 面向对象--封装

    一、前言

      Python面向对象的三大特性:继承、封装和多态。

      封装:在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法。

    二、封装

       在类中我们封装什么? 

    2.1 封装属性和方法

    class Person(object):
    
        country = 'CN'     # 公有属性
    
        def __init__(self, name, age, gender):    # 构造函数
            self.name = name     # 成员/普通 属性
            self.age = age
            self.gender = gender
            print('I am from %s, my name is %s.' % (self.country, self.name))
    
        def your_age(self):    # 方法
            print("I'm %s years old." % self.age)
    
    
    p = Person('bigberg', 22, 'M')   # 对象
    p.your_age()
    

      

      类中:封装了全局属性、普通属性、各种方法

      对象: 封装了普通属性的值

    2.2 封装对象 

    class F1(object):
    
        def __init__(self, n):
            self.N = n
            print('F1')
    
    
    class F2(object):
        def __init__(self, agr1):
            self.a = agr1
            print('F2')
    
    
    class F3(object):
        def __init__(self, agr2):
            self.b = agr2
            print('F3')
    
    
    o1 = F1('bigberg')
    o2 = F2(o1)
    o3 = F3(o2)
    
    # 如何通过 o3得到 'bigberg'?
    

      之前我们已经了解了 self 其实代表的就是 对象本身,比如 类 F1中的 self 指的就是 o1。

      这样我们就能很快的知道  self.N=o1.N='bigberg'。

      那么我们需要做的就通过o3找到o1,所以需要这些步骤:

           o3 ---> o2 ---> o1

      同理可知:o3.b =  o2

           o2.a = o1

          所以最后结果是:   o3.b.a.N

  • 相关阅读:
    mysqldump
    设计模式
    设计模式
    设计模式
    设计模式
    PHP 调试
    PHP 调试
    Windows 下手工搭建 LNMP 环境
    设计模式
    设计模式
  • 原文地址:https://www.cnblogs.com/bigberg/p/7233854.html
Copyright © 2011-2022 走看看