zoukankan      html  css  js  c++  java
  • python self用法

    在定义类的过程中,无论是显式的创建类的构造方法,还是向类中添加实例方法,都要将self参数作为方法的第一个参数。

    class Person:
        def __init__(self):
            print("正在执行构造方法")
        def study(self, name):
            print(name, "正在学python")
    
    python类方法中的self参数就相当于C++中的this指针。
    

    同一个类可以产生多个对象,当某个对象调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,换句话说,python会自动绑定类方法的第一个参数指向调用该方法的对象。
    如此,python解释器就能知道到底要操作哪个对象的方法了。

    程序在调用实例方法和构造方法时,不需要手动为第一个参数传值。

    class Person:
        def __init__(self):
            print("正在执行构造方法")
        def study(self):
            print(self, "正在学python")
    xiaobai = Person()
    xiaobai.study()
    mary = Person()
    mary.study()
    #执行结果
    #study()中的self代表该方法的调用者,即谁调用该方法,那么self就代表谁。
    正在执行构造方法
    <__main__.Person object at 0x0000013B6A24BA58> 正在学python
    正在执行构造方法
    <__main__.Person object at 0x0000013B6A24BC88> 正在学python
    

    对于构造函数中的self参数,其代表的是当前正在初始化的类对象。

    class Person:
        name = "xiaobai"
        def __init__(self, name):
            self.name = name
    mary = Person("mary")
    print(mary.name)
    lisa = Person("lisa")
    print(lisa.name)
    #执行结果
    mary
    lisa
    

    总之,无论是类中的构造函数还是普通的类方法,实际调用它们的是谁,则self就代表谁。

  • 相关阅读:
    c++实验9 图及图的操作实验
    Html/CSS 示例演练 图书馆后台界面
    c++实验8 哈夫曼编码-译码器
    Html/CSS 初步介绍html和css部分重要标签
    c++实验7 二叉树
    JavaWeb -学生信息管理实践(JDBC+web+三层架构+DBUtil构造思路)
    java 实验6 图形用户界面设计试验(2)
    操作表与操作表数据行
    数据表操作练习
    数据库的介绍:
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12218350.html
Copyright © 2011-2022 走看看