码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 如何理解Python中的self变量?


    一个简单的例子

    代码

    class Person:
        def __init__(self, name):
            self.name = name  # 定义类的属性
    
        def think(self):  # self其实就是类函数think的一个普通参数而已,表示被调用的对象,参数具体值也即我们的实例对象
            print("{} is thinking".format(self.name))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    尝试使用两种方法输出看看

    wgw.think()
    wangguowei is thinking
    Person.think(wgw)
    wangguowei is thinking
    
    • 1
    • 2
    • 3
    • 4

    二者的深入理解

    查看两种方法是什么类?

    • 一个是类函数
    • 一个是实例的方法
    Person.think
    Out[14]: <function __main__.Person.think(self)>
    wgw.think
    Out[15]: <bound method Person.think of <__main__.Person object at 0x000000000543CEF0>>
    
    • 1
    • 2
    • 3
    • 4

    因self 其实就是类函数 think 的一个普通参数而已

    • 指被调用对象,参数具体值也即我们的实例对象

    通过==[实例.方法]==调用时候为什么不需要传递参数?

    该方法与当前实例对象进行了绑定,调用的时候

    • python会自动把实例对象作为参数传递过去
    • 不需要再传递参数

    系统理解self

    1、self只有在类的方法中才会有,其他函数或方法是不必带self的。
    2、在类的方法中(如__init__),第一参数永远是self,表示创建的类实例本身,而不是类本身。
    3、针对self参数在调用时不必传入相应的参数。
    4、可以把对象的各种属性绑定到self。
    5.self不是python的关键字,只是一个约定俗成的,也可以用其他名称命名,但是为了规范和便于读者理解,推荐使用self。
    6、类中_init__()方法是一种特殊的方法,被称为类的初始化方法,如果存在初始化值的就需要。
    7、self 代表类的实例

  • 相关阅读:
    暴力递归转动态规划(十)
    DQL语句_查询表中指定的字段_以及指定的别名_以及字段去重
    python函数嵌套调用的实现
    如何获取大数据平台 CDH 中 hive metastore db 的用户名和密码?
    树莓派在Raspbian系统(Bookworm)中无法获取RJ45网口eth0或end0的IP地址(没有IPv4的地址无法操作)
    ffmpeg的pcm、yuv小知识点
    Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单
    蓝桥杯 常用STL (C++) 未完待续
    [ 漏洞复现篇 ] yapi 代码执行 getshell 漏洞复现详解
    25、Camunda Service Task、任务监听器和执行监听器
  • 原文地址:https://blog.csdn.net/weixin_44943389/article/details/128194977
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号