• 类的实例化过程


    一、定义一个类

    class Dog(object):   # 定义class
    
        def __init__(self, name):  # 构造函数,构造方法 == 初始化方法
            self.name = name   # d.name = name  类的属性 / 成员变量
    
        def say_hi(self):   # 类的方法
            print("Hello, I am a dog. My name is", self.name)
    
        def eat(self, food):
            print("%s is eating %s." % (self.name, food))
    
    
    d = Dog("xiaohei")  # Dog(d,"xiaohei")  d == self
    
    # d 实例化的对象即实例,类中的self相当于实例
    
    d.say_hi()   # d.say_hai(d)
    
    d.eat('beaf')
    
    • 第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
    • self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

     二、self代表的实例,而非类

      类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

    class Dog(object):
    
        def prt(self):
            print(self)
            print(self.__class__)
    
    d = Dog()
    
    
    print(d)
    print("-------------")
    d.prt()
    
    
    #输出
    <__main__.Dog object at 0x000001DDBD10C5F8>
    -------------
    <__main__.Dog object at 0x000001DDBD10C5F8>
    <class '__main__.Dog'>
    

      从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。

    三、创建实例对象

      实例化类其他编程语言中一般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式。  

    # 创建一个Dog类的对象
    d = Dog("xiaohei")
    

      实例化后的对象又称之为:实例

    四、访问属性  

      您可以使用点(.)来访问对象的属性 

    # 通过 d.方法   来访问属性
    d.eat('beaf')
    
    #输出
    xiaohei is eating beaf.
    

      

  • 相关阅读:
    《人月神话》阅读笔记02
    学习进度条-4
    课堂作业3
    MySql 8.0及对应驱动包匹配注意点
    关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案
    STM32之ADC配置,ADC_Mode模式理解
    STM32串口中断的方式发送
    RTC 与RCC 之间的关系
    stm32 MDK5软件仿真之查看io口输出
    STM32 PWM学习
  • 原文地址:https://www.cnblogs.com/bigberg/p/7147300.html
Copyright © 2020-2023  润新知