• 面向对象


    面向对象基础

    面向对象编程(抽象)

    对象:特征和技能的结合体

    面向对象编程:一个个对象进行交互

    优点:扩展性非常强

    缺点:逻辑非常复杂

    类与对象

    类(类别):一系列具有相同特征和技能的对象

    现实世界中先有对象,后有类

    Python中先有类,再有对象

    class 类名(驼峰体):  # 定义类,会直接运行类体代码
        # 定义一系列特征
        # 定义一系列方法
        
    对象1 = 类名()  # 实例化出对象
    

    给对象定制独有的特征

    class OldBoyStudent:
        school = 'oldboy'
        
        def __init__(self, name ,age):
            self.name = name
            self.age = age
    
        def choose_course(self):
            print('is choosing course')
            
    stu1 = OldBoyStudent('a',1) 
    stu1.school
    
    stu2 = OldBoyStudent('b',2) 
    stu2.scool
    
    

    对象的属性查找顺序

    class OldBoyStudent:
        school = 'oldboy'
        name = 'c'
        
        def __init__(self, name ,age):
            self.name = name
            self.age = age
    
        def choose_course(self):
            print('is choosing course')
            
    stu1 = OldBoyStudent('a',1) 
    stu1.school
    
    stu2 = OldBoyStudent('b',2) 
    stu2.scool
    
    

    先从对象本身查找,然后从类中查找,类中也没有则报错

    类与对象的绑定方法

    class OldBoyStudent:
        school = 'oldboy'
        
        def __init__(self, name ,age):
            self.name = name
            self.age = age
    
        def choose_course(self):
            print(id(self))  # 10000
            print(self.school)
            print(f'{self.name} is choosing course')
            
    stu1 = OldBoyStudent('a',1) 
    stu1.choose_course()  # self是对象本身
    print(id(stu1))  # 10000
    
    OldBoyStudent.choose_course(stu1)
    
    
    

    类与数据类型

    lis = list([1,2,3])
    lis2 = list([1,2,3])
    lis.append(4)
    # list.append(lis,4)
    
    

    对象的高度整合

    对象会有一大堆属性/数据,还会有一大堆方法来操作这些属性,然后对于不同的对象,这些属性又不同.

  • 相关阅读:
    NAS与SAN RAID
    使用slice和concat对数组的深拷贝和浅拷贝
    使用JSON.parse(),JSON.stringify()实现对对象的深拷贝
    ng2父子模块通信@ViewChild和@Inject
    js避免命名冲突
    JSON.parse()和JSON.stringify()
    object类型转换为Array类型
    Angular 2 ViewChild & ViewChildren
    ElementRef, @ViewChild & Renderer
    ng2父子模块数据交互
  • 原文地址:https://www.cnblogs.com/acate/p/11045874.html
Copyright © 2020-2023  润新知