• 面向对象【day07】:类的实例化过程剖析(三)


    本节内容

    1、概述

    2、类的语法

    3、总结

    一、概述

       之前我们说关于python中的类,都一脸懵逼,都想说,类这么牛逼到底是什么,什么才是类?下面我们就来讲讲,什么是类?它具有哪些特性。

    二、类的语法

    2.1 语法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class dog(object):   #用class定义类
        "dog class"     #对类的说明
     
        def __init__(self,name):   #构造函数或者是构造方法,也可以叫初始化方法
            self.name = name
     
     
        def sayhi(self):    #类方法
            "sayhi funcation"    #对类方法的说明
     
            print("hello,i am a dog,my name is ",self.name)
     
     
    = dog("alex")   #定义一个d的对象,叫实例
    d.sayhi()    #调用实例的方法

    2.2 self关键字

    有很多小伙伴不禁的疑问,这个self是什么鬼?为什么在执行sayhi函数时,上面的self.name可以在函数中被调用?如下图:

    其实self 这个关键字相当于实例化对象本身(self相当于d),在实例化过程中,把自己传进去了,我们队上面的两行做一下解释:

    2.3 函数__init__()

      在类中__init__()函数叫构造函数,又叫构造方法,也可以叫初始化函数。它的作用就是初始化实例时,初始化传入实例的的默认值。如果不写__init__(),就会调用的默认为空的__init__(),说白了,这个方法不管你写不写,都会调用,而且,一旦实例化就会调用。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class dog(object):
        "dog class"
     
        def __init__(self,name):  #构造方法,不写调用默认的构造方法
            self.name = name 
     
        def eat(self,food):
            print("the dog name is {0},it like food is {1}".format(self.name,food))
     
    = dog("alex")
    d.eat("hotdog")
    #输出
    the dog name is alex,it like food is hotdog

    三、总结

      最后我们画一个图,来说明一下实话过程的图,不然真的很难理解这个玩意:

    由上图可知:其实self,就是实例本身!你实例化时python会自动把这个实例本身通过self参数传进去

  • 相关阅读:
    auth
    django缓存机制
    图片防盗链
    用户相关
    验证码
    单个容器部署django (docker + django + uwsgi)
    MySQL性能调优的10个方法
    数据库-外键
    数据库(存储引擎、字段类型、约束条件)
    数据库
  • 原文地址:https://www.cnblogs.com/luoahong/p/9894598.html
Copyright © 2020-2023  润新知