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鸭子类型:对象在语法上满足调用关系,实际不具有对应的调用形态,则该对象为鸭子类型


    





    

             





最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容

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