Python3基础语法13--面向对象

找到对应的个体完成对应的任务

1.类

    定义:一系列事物的统称,同类事务必定有相同的特征,如:状态(成员变量),行为(成员方法)...(抽象)

    1.1定义类的格式:
        格式1:
            class 类名:
                pass

        格式2:
            class 类名:
                属性
        命名规则:大驼峰

    1.2成员变量
       1.2.1 定义格式一(常用):
            class 类名:
                def __init__(self):
                self.变量名 = 值
               self.变量名 = None
            调用格式:
                取值:对象名.变量名
                赋值:对象名.变量名 = 值
        1.2.2定义格式二(不常用,在使用对象时候直接给特有变量赋值)
            对象名.变量名(类中没有出现的,这个对象特有的变量名) = 值
            调用同上
            注意:
                1.如果变量名不存在则视为定义变量
                2.如果变量名存在视为调用变量

    1.3 成员方法: 
        1.3.1定义格式一(常用)
             def 方法名(self):
                 方法体
            调用格式一:
                对象名.方法名()
            注意:self仅在声明时占位,无需传递具体参数
        1.3.2定义格式二:
             def 方法名(self,形参1....)
                方法体
            调用格式二:
                对象名.方法名(实参1....)

    1.4init方法与魔术方法:
        __init__()方法在对象创建时被运行,无需手动调用
        魔术方法:对于程序中声明,定义的方法在特定时机自动执行的方法叫做魔术方法
            方法名前面和后面各有两个_
        __str__方法:在使用print()函数打印输出对象到屏幕是被运行,,无需手动调用,也属于魔术方法
            定义格式:
                 def __str__(self):
                         return 打印对象时显示的信息
    1.5成员方法调用成员
        成员方法调用成员变量"self.变量名"
        注意:慎重调用独有变量,当创建该对象没有定义此独有变量时会报错
        成员方法调用成员方法"self.方法名()"

2.对象

    具体的事务
    创建对象:变量名 = 类名()

3.封装:

    3.1私有:对成员私有化可以保护对象直接访问内部成员
        私有属性定义格式: self.__属性名 = 值
        私有方法定义格式:
             def __方法名(self):
                  方法体

    3.2标准定义格式:
        3.2.1.对受保护的变量进行私有设置
            self.__变量名 = 值
        3.2.2.对外提供访问器:
             访问器(get方法)
                 def get_变量名(self):
                       return self.__变量名
           对外提供修改器:
              修改器(set方法)
              def set_变量名(self,值):
                  self.__变量名 = 值

    3.3init传参
        格式:
             def __init__(self,形参列表):
                 self.__属性名1 = 形参1
                 self.__属性名2 = 形参2
                    ......
        创建:
            变量名 = 类名(self, 值1,值2......)

    3.4类变量:直接写到类的下面
        定义格式:
            class 类名:
                变量名 = 值
        调用格式:
            赋值:类名.变量名 = 值
                只能通过此方法修改值,不能够通过"对象名.变量名 = 值"来修改
             取值:类名.变量名(推荐)
                     对象名.变量名(不推荐)
        注意:
            1.类中成员变量根据对象不同会发生改变,叫做实例变量
            2.不会发生改变的叫类变量
                类变量归属类,实例变量归属对象实例

    3.5类方法:
        定义格式:
            class 类名:
                @classmethod
                 def 方法名(cls,形参列表)
                      方法体
        调用格式:
            类名.方法名(实参列表)  (推荐)
            对象名.方法名(实参列表)  (不推荐)
        注意:
        1.类方法中不允许使用实例方法和实例变量
        2.实例方法中可以使用类变量和类方法

    3.6静态方法:
        定义格式:
            class 类名:
                @staticmethod
                def 方法名(形参列表)
                    方法体
       调用格式:
            类名.方法名(实参列表) 
            对象名.方法名(实参列表)
        注意:静态方法与类无关,通常转换成函数使用

    3.7变量名称总结:
        全局变量:直接写在文件中的变量或在函数中用global修饰的变量 5
        局部变量:函数中没有用global的的变量,类的方法中没有带有self.的变量 2
        公有变量:在类的方法中定义的带有self.的变量 1
        独有变量:没有在类中定义,在类的外边使用某个对象时候定义的变量 5
        私有变量:在类中变量名称前面带有两个_,只能在类中使用 3
        类变量:直接写到类的下面 4

        成员变量:共有变量
        对象变量:对象的xxx变量
        对象属性:对象的xxx属性

    3.8方法名称总结:
        方法:def 修饰的都是方法 实际叫的时候不是init方法 不是类方法,不是静态方法,就普通方法(成员方法,实例方法)
        类方法:方法上面带有@classmethod
        静态方法:方法上带有@staticmethod
        函数:定义在类外边的
        init方法也可以叫做构造方法  

    3.9对象名称总结:
        对象,实例

4.继承

    4.1A继承B,A是子类,B是父类

    4.2定义格式
        class 类名(父类名):
            pass

    4.3注意:
        1.子类可以添加父类没有的成员
        2.父类私有成员不能被继承

    4.4查看某类继承自谁:类名.__mro__

    4.5所有类的父类:object

    4.6重写:
        修改父类方法中的功能
        子类调用父类的方法:
            格式1:父类.方法名(对象)
            格式2:super(本类名,对象).方法名()
            格式3:super().方法名() (推荐)

    4.7多继承
        定义格式:
            class 类名(父类1,父类2.....)
                pass
        注意:super().方法名()执行父类1的方法

    4.8多态:一个对象可以干多种事情,需要有继承

    4.9鸭子类型:对象在语法上满足调用关系,实际不具有对应的调用形态,则该对象为鸭子类型


    





    

             





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

推荐阅读更多精彩内容

  • 做这个世界最爱自己的人!
    Claire_007阅读 1,196评论 0 0
  • 静坐时 我回到一颗种子 成为黑暗的陪伴者 楼上的婴孩在啼哭 要突破墙壁喊出那些年青的话 窗外远方的桥 把脊骨献与火...
    漫游者的歌声2001阅读 861评论 0 1
  • 赠给一个老朋友。下次见面就是多年以后了。 沽一壶月光 采一把云朵 飨归去的客人 趁枝梢的清风 把寒气打散 唱今夜的...
    苗苗班的阿岳阅读 903评论 0 3
  • 自我好还是自律好?绝大部分人都会选择后者。 自律是公认的优良品质,之所以是公认,就因为它是教育的结果。自我这个词,...
    张永胜_永往直前阅读 897评论 0 0
  • 忆从前。寒檐下、双燕生死相怜。风雨苍烟陇上,眷侣情坚。怨天无眼,千万缕、别绪绵延。来与去、谁能自己,皆命全权。 荒...
    银狐夙晓阅读 3,627评论 11 20