• 面向对象思想与内置方法


    # -->
    
    '''
    
    Monthly Summary
    04.23.2019
    
    面向对象
    (界门纲目科属种)
    
    # --(  )------------------------------------------------------------------------------------------------
    
    1.类与对象
    
        对象是特征与技能的结合体,即数据与方法
        类是一系列对象(相似)的特征与技能的结合体,即(相似)的数据与方法
    
    2.面向对象的三大特征
    
        封装:
            把一堆数据属性与方法属性整合到对象里面
            隐藏: __ 隐藏掉属性
    
        继承:
            父类是一系列共有数据属性与方法属性的结合体
            子类可以继承父类的属性,还可以派生出自己独有的属性
    
            组合:
            继承的一种应用,继承父类的属性,不与父类耦合到一起
            把一个对象放到另一个对象里面
    
        多态:
            1.抽象类
            2.鸭子类型
    
    3.绑定方法
        给对象用的,由对象来调用,会自动把对象本身当作第一个参数传给self
    
    4.类内置装饰器
    
        @classmethod 绑定给类的方法,对象也可以调用
        @staticmethod 非绑定方法,谁都不绑定,都可以调用
        @property (.getter 外界可查)(.setter 外界可改)(.deleter 外界可删)
    
    5.面向对象高级 attr ibute(属性)
        1.属性
            通过 str字符串 来操作类与对象的属性
    
            hasattr
                判断对象或者类的属性是否存在
            getattr
                获取对象或者类的属性
                参数 (对象object,str‘属性名’,默认值default)
            setattr
                设置对象或者类的属性
            delattr
                删除对象或者类的属性
    
    
        2.类的内置方法
            __init__():调用自动触发,初始化
            __str__():打印对象的时候用此方法,必须return一个字符串
            __del__():在对象占用空间被清掉时,会自动出发__del__方法的执行
            __setattr__(self,Key,value):修改对象的属性时,会自动触发,初始实例化对象时也会自动触发
            __delattr__(self,Key,value):删除对象时会自动触发
            __call__():调用对象时会自动触发
    
    
    '''
    
    --( 面向过程 )------------------------------------------------------------------------------------------------
    
        思想:核心是过程,是解决问题的步骤,前后顺序
        基于该编程思想编写程序,相当于一条流水线,机械思维方式。
    
    --( 面向对象 )------------------------------------------------------------------------------------------------
    
        思想:核心是对象,是数据与方法的结合体。可理解为容器
        基于该编程思想编写程序,就好比创造世界,上帝式思维方式。
    
    
    
    
    --( 2.面向对象的三大特征 )------------------------------------------------------------------------------------------------
    --( 组合案例 )------------------------------------------------------------------------------------------------
    类与类之间不想耦合,即可以用组合,继承和组合不可混用
    
    class Course:
        def __init__(self,x):
            self.x = x
    
    class Student:
        def __init__(self,name,sex,age):
            self.name = name
            self.sex = sex
            self.age = age
            self.course = []
    
    course_1 = Course('python')
    student = Student('Max',24,'male')
    student.course.append(course_1.x)
    print(student.course)
    ['python']
    
    
    --( 4.类内置装饰器 )------------------------------------------------------------------------------------------------
    --( @classmethod )------------------------------------------------------------------------------------------------
    
    class OldboyMembers():
        def __init__(self,sex,age):
            self.sex = sex
            self.age = age
        @classmethod
        def obm_sex(self):
            print('qqqqqqqqqqqqqqqqqqqqqqqq')
        # @property
        def obm_age(self):
            return self.age
    
    p =OldboyMembers('111',24)
    print(p.obm_age)
    print(OldboyMembers.obm_sex())
    
    
    --( setattr hasattr getattr delattr )------------------------------------------------------------------------------------------------
    --( 增改  查  查了用  删 )------------------------------------------------------------------------------------------------
    
    
    class People:
        school = 'oldboy'
        def __init__(self,name):
            self.name = name
    p = People('tank')
    
    hastter
    print(hasattr(p, 'school')) # True
    print(hasattr(p, 'schooo')) # False
    
    getattr
    print(getattr(p, 'name','默认值')) # tank
    print(getattr(p, 'NAME','默认值')) # 默认值
    
    setattr
    setattr(p,'age',18)
    print(p.age) # 18
    
    delattr
    print(hasattr(p, 'name')) # True
    print(delattr(p, 'name')) # None
  • 相关阅读:
    hdu1251 && hud 1247 (字典树)
    linux系统调用kernel code
    Android init.rc 服务启动不成功
    android init执行service的脚本code位置
    printk %pS %pF含义
    进程页表图示
    linux内核之进程的基本概念(进程,进程组,会话关系)
    What is the purpose of the controlling terminal?
    android init.rc中service console option的含义、作用
    启动和停止init.rc中的服务
  • 原文地址:https://www.cnblogs.com/max404/p/10758440.html
Copyright © 2020-2023  润新知