美文网首页
Python面向对象1

Python面向对象1

作者: 狗狗胖妞 | 来源:发表于2017-05-03 15:15 被阅读8次

Python支持多种编程方式:面向过程,面向对象,面向切面(装饰器部分)等

OOP思想

  • 面向对象的基本哲学:世界是由具有各自运动规律和内部状态的对象组成,对象之间的相互作用和通讯构成了世界
  • 唯一性:世界上没有两片相同的树叶,同样的没有两个相同的对象
  • 分类性:分类是对现实世界的抽象

面向对象特性

三大特性:封装,继承和多态

1. 封装

1.1.类的公有属性
类外面都可以访问的属性叫公有属性 X
属于这个类的对象都可以访问的属性叫公有属性 V

1.2 更改类的公有属性
I. 通过对象改(在自己的内存中创建了一个新的变量)
r1.nationality = CN
II. 通过类改
Role.nationality = JP
对象访问公有属性:对象的内存地址—>类地址(先在自己的内存地址查找,如果不存在就在类地址中查找) 类似与类方法继承

  • 类中封装了:字段,方法
  • 对象中封装了:普通字段的值
class F1(object):
    def __init__(self,n):
        self.N = n
        print('F1')

class F2(object):
    def __init__(self,arg1):
        self.a =arg1
        print('F2')

class F3(object):
    def __init__(self,arg2):
        self.b = arg2
        print('F3')

o1 = F1('Alex')
o2 = F2(o1)
o3 = F3(o2)

如何通过o3得到Alex: o3.b.a.N
封装不仅可以封装字符串,数字,还有对象等

2. 继承

继承的过程就是从一般到特殊的过程

class F1(object):
    def __init__(self):
        print("F1")

    def a1(self):
        print('F1a1')

    def a2(self):
        print('F1a2')

class F2(F1):
    def __init__(self):
        print('F2')

    def a1(self):       #--3--
        self.a2()       #--4--
        print('F2a1')   #--7--

    def a2(self):
        print('F2a2')

class F3(F2):
    def __init__(self):
        print('F3')

    def a2(self):        #--5--
        print('F3a2')    #--6--

obj = F3()     # --1--
obj.a1()       #--2--

F3
F3a2
F2a1

经典类与新式类

SchoolMember.__init__(self,name,age,sex) #经典类写法
super(Teacher,self).__init__(name,age,sex) #新式类写法
Python2 经典类深度查询,新式类广度查询
Python3 经典类和新式类都为广度查询

多重继承
class A(object):
    def __init__(self, a):
        print('init A...')            #--5--
        self.a = a                    #--6--

class B(A):
    def __init__(self, a):
        super(B, self).__init__(a)    #--3--
        print('init B...')            #--8--

class C(A):
    def __init__(self, a):
        super(C, self).__init__(a)    #--4--
        print('init C...')            #--7--

class D(B, C):
    def __init__(self, a):
        super(D, self).__init__(a)    #--2--
        print('init D...')            #--9--

d = D("d")              #--1--

init A...
init C...
init B...
init D...
参考文档:http://www.cnblogs.com/superxuezhazha/p/5737967.html

3. 多态

python的多态用一句话概括就是,有这种方法,并且传入相应的参数就行
参考文档: http://www.cnblogs.com/superxuezhazha/p/5737955.html

相关文章

  • python面向对象学习笔记-01

    学习笔记 # 0,OOP-Python面向对象 - Python的面向对象 - 面向对象编程 - 基础 -...

  • Python 面向对象编程

    Python 面向对象编程(一) Python 面向对象编程(一) 虽然Python是解释性语言,但是它是面向对象...

  • python|一个渣男语言的一生

    Python从设计之初就已经是一门面向对象的语言,本章节我们将详细介绍Python的面向对象编程。 【1】面向对象...

  • Pyhon面向对象|类、实例化、对象、继承、多态

    1.面向对象的思想 Python是一种面向对象语言。面向对象没有那么玄乎,可以理解成“对象就是一个角色”。面向对象...

  • python基础-02

    Python 面向对象 python是一门面向对象的语言 Python内置类属性 python对象销毁(垃圾回收)...

  • 王艳华Pythonday03

    Python的面向对象 Java 面向对象 继承

  • Python OOP-1

    0. OOP-Python面向对象 Python面向对象 面向对象编程基础公有私有继承组合,Mixin 魔法函数魔...

  • Python面向对象1

    Python支持多种编程方式:面向过程,面向对象,面向切面(装饰器部分)等 OOP思想 面向对象的基本哲学:世界是...

  • python面向对象1

    编程思想 编程思想:面向过程编程(穷人思想)、函数式编程、面向对象编程(富豪) 面向过程编程: 算法和逻辑 函数式...

  • python面向对象1

    1.面向过程编程(穷人) ---算法和逻辑 2.函数式编程(小资) ---函数 3.面向对象编程(富...

网友评论

      本文标题:Python面向对象1

      本文链接:https://www.haomeiwen.com/subject/wappottx.html