2019-11-22-Python面向对象基础

1122-Python面向对象基础

一阶段剩余安排:面向对象基础,面向对象的语法正则表达式,网络编程基础,多线程基础,考试

  1. 类:拥有相同功能、相同属性的对象的集合,抽象的概念,比如:人、动物、树、电脑、手机等等

    1)声明:

    class 类名:[类名:首字母大写,多个单词遵守驼峰式命名,不能是关键字与系统类名]

    ​ ["""类的说明文档"""]

    ​ 特征、属性

    ​ 方法、函数

    2)类属性:类中保存数据的变量,属性分为两种:字段、对象属性

    ​ a. 字段属性:声明在类里面函数外面的变量;通过类调用:类名.字段

    ​ b. 对象属性:声明在init方法中;声明:self.属性名 = 值;通过对象调用:对象.属性

  2. 对象:类的实例,具体的实物,例如:我的手机、电脑,具体的某个人等

    创建对象:对象名 = 类名(),创建类的对象并返回

  3. 方法:声明在类中的函数,分为三种:对象方法、类方法、静态方法

  4. 对象方法:

    1)声明:直接声明在类中的函数

    2)调用:对象名.对象方法()

    3)特点:self在调用过程中会默认传递self对象,self表示当前调用对象本身

    4)魔术方法__ init__:类中自带,也是对象方法,初始化对象,创建对象自动调用

    5)构造方法/函数:Python中声明类时,系统会自动为类声明一个类名函数,调用:类名()

    6)使用场景:函数功能需要使用对象

  5. 类方法:

    1)声明:在函数声明前加@classmethod

    2)调用:类.方法名()

    3)特点:自带一个参数cls,cls表示当前调用类本身,cls在调用过程中会默认传递给cls对象

    4)使用场景:在不需要使用对象的情况下,需要类函数

  6. 静态方法:

    1)声明:在函数前加@staticmethod

    2)调用:类.方法名()

    3)使用场景:在不需要使用对象的情况下,也不需要类的情况,普通使用

  7. 对象属性的增删改查:

    1)获取:

    ​ a. 对象.属性:获取对象指定属性的值

    ​ b. getattr(对象,属性名:str):获取指定对象的属性值,属性名可以是变量名

    ​ c. getattr(对象,属性名:str,默认值):获取指定对象的属性值,如果属性不存在返回默认值

    2)修改/增加:

    ​ a. 对象名.属性名 = 值:当属性存在即修改,不存在则增加

    ​ b. setattr(对象,属性名,值):当属性存在即修改,不存在则增加

    3)删除:

    ​ a. del 对象.属性:删除对象指定的属性

    ​ b. delattr(对象,属性名):删除对象指定的属性

  8. 内置类属性:声明类时,系统提供的属性

    1)类.__ name__:获取类名,数据类型为字符串

    2)对象.__ class__:获取对象对应的类(和type(对象)功能一样)

    3)类.__ doc__:获取当前类的说明文档

    4)__ dict__ :

    ​ a. 类.__ dict__:获取类中所有字段和值,以字典形式返回

    b. 对象.__ dict__:获取对象中所有的属性和对应的值,以字典形式返回;如果设置slots,不能用

    5)__ slots__:约束当前类最多能拥有的对象属性

    6)类.__ module__:获取当前类声明的模块名

    7)类.__ bases__:获取当前类的父类门,object是Python的基类

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容