设为首页 加入收藏

TOP

面向对象--封装
2017-09-30 17:51:39 】 浏览:3017
Tags:面向 对象 封装

一、概述                                                                                                  

  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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python logger模块 下一篇13、文件处理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目