• 6-1面向对象


    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    ''''''
    '''
    面向过程
    编程是 语法+数据结构+算法组成的代码 来告诉计算机如何执行任务的过程
    面向过程编程 通过一系列指令 一步一步告诉计算机做什么。依赖过程 从上到下
    改一点的时候 有依赖的全要改 程序越大越难维护 脚本,一次性的任务。(写完就不动的)

    面向对象
    世界万物,皆可分类,皆为对象,对象就有分类,属性。
    利用类和对象来创建各种模型来对真实世界的描述 1,程序的维护和扩展变的简单,提高效率2,容易理解
    特性
    class类
    一个类即是对一类拥有相同属性对象的抽象,蓝图,原型。
    object对象
    一个类经过实例化。
    封装
    在类中对数据的赋值,内部调用对外部用户是透明的,这类变成一个容器。
    继承
    一个类可以派生出子类,在这个父类里定义的属性,方法自动被子类继承。继承多个类
    子类继承父类,或多个父类
    多态
    一个接口,多种实现。说,员工开始工作,不说技术工作,销售工作。


    ###class类###
    class aa:
    a=12 #类变量 #先找实例变量再找类变量
    cn = 'xx' #大家共用的属性 节省开销
    def __init__(self,name,age):
    #构造函数 开辟一块内存 只能在这里传参数
    #在实例化时做一些类的初始化的工作
    self.name=name
    #实例变量(静态属性:变量)
    self.__age_=age
    #私有属性 在类内可以查看和更改。在类外不能
    def __del__(self):
    print("%s已死亡"% self.name)
    def bb(self):
    #类的方法,功能(动态属性:方法)
    print('%s aaaaaaaaaaaaa'%(self.name))
    def cc(self):
    #在类内部函数查看私有属性
    print('你 %s 岁了'% self.__age_)

    a1=aa('一号',11) #实例化,初始化一个类。造一个对象
    a1.bb();a1.cc()
    a2=aa('二号',22);
    a2.bb()
    a2.cc() #在类内部函数查看私有属性
    #############
    程序本身检测

    语法
    调用函数-执行-返回结果
    属性
    方法
    构造函数 class类
    析构函数
    在实例释放,销毁的时候自动执行的,做收尾工作关闭,连接,临时文件
    def __del__(self): #被删除时执行 或者程序退出时执行
    print('已死亡'%s self.name)

    私有方法,私有属性
    __变量名_ 改成私有属性
    在类内可以访问私有私性,在类外部不可以访问。

    '''




    ###class类###
    class aa(object):
    a=12 #类变量 #先找实例变量再找类变量
    cn = 'xx' #大家共用的属性 节省开销
    def __init__(self,name,age):
    #构造函数 开辟一块内存 只能在这里传参数
    #在实例化时做一些类的初始化的工作
    self.name=name
    #实例变量(静态属性:变量)
    self.__age_=age
    #私有属性 在类内可以查看和更改。在类外不能
    def __del__(self):
    print("%s已死亡"% self.name)
    def bb(self):
    #类的方法,功能(动态属性:方法)
    print('%s 我是父类'%(self.name))
    def cc(self):
    #在类内部函数查看私有属性
    print('%s %s 这是在类内调用私有属性'% (self.name,self.__age_))
    def dd(self): #继承
    print('%s 被子类重写前的调用'%self.name)
    class ab(object):
    def ee(self,object):
    print('%s 另外父类%s'%(self.name,obj.name))
    class aaa(aa): #继承aa 多继承(aa,父类2,父类3)
    def __init__(self,name,age,hehe): #子类比父类多参数
    super(aaa,self).__init__(name,age) #先把父类的参数传过去
    #aa.__init__(self,name,age) #和上面功能一样 旧版写法
    self.hehe=hehe #只添加子类比父类多出来的参数
    #继承aa类
    print('继承:我是子类')
    def dd(self): #调用父类
    aa.dd(self) #先调用一次父类
    print('重写父类,子类多出的参数%s'%self.hehe) #再执行新的类

    a9=aaa('xiao',9,' QQ') #调用子类
    a9.dd()

    a1=aa('一号',11) #实例化,初始化一个类。造一个对象
    a1.bb();a1.cc()
    a2=aa('二号',22);
    a2.bb()
    a2.cc() #在类内部函数查看私有属性

    #继承策略
    #广度优先,继承父类1,父类2,父父类2 默认 python 3都是
    # python2 新式类 class a(object):
    # 深度优先,继承父类1,继承父类1的父类,父类2,父类2的父类
    # python 2 的经典类 class a:

    #多态
    class dongwu(object):
    def __init__(self,name):
    self.name=name
    @staticmethod
    def xx(obj):
    obj.kk()
    class cat(dongwu):
    def kk(self):
    print('%s 喵喵!'%self.name)
    class dog(dongwu):
    def kk(self):
    print('%s 旺旺'%self.name)
    m=cat('小猫')
    w=dog('小狗')

    dongwu.xx(m)
    dongwu.xx(w)
  • 相关阅读:
    golang json处理
    关于单例模式中懒汉模式和饿汉模式的学习
    关于Lambda表达式的研究
    左值和右值得研究
    关于epoll的详解说明关于epoll的详解说明
    关于c++中条件变量的分析
    关于c++种std::function和bind的用法
    关于iterator_traits的使用
    STL容器之deque数据结构解析
    STL容器之Array的用法
  • 原文地址:https://www.cnblogs.com/pojue/p/8042536.html
Copyright © 2020-2023  润新知