• 函数式编程vs面向对象编程


    类:有相同功能与属性的一类东西

    对象:是类的具体体现,具体到一个

    优势: 类是一组相似功能的集合,让我代码的组织结构更加清晰规范

      用面向对象设计程序,累就是一个公共模板,对象去操作使用这个公共模板

    类的结构:

    class Human:
        mid='有思想'
        language='会使用语言'
        shape_list=['四肢','五官','头']  静态属性
        def work(self):
            print('人类都会工作')
        def eat(self):
            print('人类都要吃饭')         方法
    print(Human.__dict__)
    Human.body_hair='体毛'     增
    del Human.language        删
    Human.mind='无脑'          改
    print(Human.shape_list)   查

    方法:代码中除去(静态方法,类方法),一般不用类名去执行类中方法

    obj=Human()
    
    obj1=Human()
    
    obj2=Human()
    
    print(obj,obj1,obj2)实例化过程中,实例化一个对象就产生一个地址
    实例化对象:类名+() 在内存中开辟了一个空间

    实例化对象(Human())发生3步:

    1在内存中开辟一个对象内存

    2自动执行__init__方法,并将对象空间传给self

    3执行__init__的代码给对象空间封装属性

    class Human:
        mind='有思想'
        language='会使用语言'
        shape_list=['四肢','五官','头']
        def __init__(self):
            print(666)
            print(self)
        def work(self):
            print('人类都会工作')
        def eat(self):
            print('人类都要吃饭')
    obj=Human()
    class Human:
        mind='有思想'
        language='会使用语言'
        shape_list=['四肢','五官','']
        def __init__(self,name,sex,age):  实参
            self.n=name
            self.s=sex
            self.a=age
        def work(self):
            print('人类都会工作')
        def eat(self):
            print('人类都要吃饭')
    obj=Human('alex','',18)    形参
    obj.n='lange'                  改
    print(obj.__dict__)    查看

    对象的角度操作类,对象:

    1,对象查看对象空间的所有属性:print(obj__dict__)

    2,对象操作对象空间的属性:

    obj.height=180       增
    print(obj.__dict__)  查
    del obj.n            删
    obj.s=''           改
    print(obj.a)         查

    3,对象查看类中的静态属性,只能查看

    print(obj.mind)

    4,对象操作类的方法:

    obj=Human('alex','男',18)
    cock=Human('小强',27,'男')   只要对象执行类中的方法,就会将对象空间自动创给方法的第一个参数
    print(cock.__dict__)

    self类中所有的方法(类方法,静态方法) 的第一个参数都会默认接收对象空间,为了方便区分,就把第一个参数约定俗称为self

    一个类可以实例化多个对象

    obj=Human('小强',27,'')
    obj1=Human('文静',18,'')
    obj2=Human('龙哥',18,'')
    print(obj.__dict__)
    print(obj1.__dict__)
    print(obj2.__dict__)
  • 相关阅读:
    new JSONObject()报空指针异常
    转:修改Fckeditor 2.6 增加插入Mp3等多媒体文件功能
    执行更新操作时,timestamp类型的字段自动被更新为了系统当前日期
    读取某个文件的位置
    myeclipse配置注释
    为eclipse 的 hibernate 配置文件加提示
    hibernate3与hibernate4
    查看eclipse版本
    Eclipse编译没有class文件生成
    严重: Error loading WebappClassLoader context:
  • 原文地址:https://www.cnblogs.com/weize111/p/10310266.html
Copyright © 2020-2023  润新知