python类方法第一个参数_Python 类成员函数第一个参数self

2023-11-03

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。

你一定很奇怪Python如何给self赋值以及为何你不需要给它赋值。举一个例子会使此变得清晰。假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self的原理了。

class Person:

def sayHi(self):

print 'Hello,how are you?'

p=Person()

p.sayHi()

# 结果显示为:

Hello,how are you?

class Person:

def sayHi(self):

print 'Hello,how are you?'

p=Person()

Person.sayHi(p)

结是同上!

class Person:

def sayHi():

print 'Hello,how are you?'

p=Person()

Person.sayHi(p)

p.sayHi()

出现如下错误信息:

Traceback (most recent call last):

File “C:\pro\Person2.py”, line 5, in ?

Person.sayHi(p)

TypeError: sayHi() takes no arguments (1 given)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python类方法第一个参数_Python 类成员函数第一个参数self 的相关文章

  • 【pip】解决ERROR: Could not build wheels for pycuda which use PEP 517 and cannot be installed directly

    参考 https stackoverflow com questions 64038673 could not build wheels for which use pep 517 and cannot be installed direc
  • java中四种操作(dom、sax、jdom、dom4j)xml方法

    java中四种操作 dom sax jdom dom4j xml方式详解与比较 1 DOM JAXP Crimson解析器 DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准 DOM是以层次结构组织的节点或信息片断的集合 这个层
  • csv反序列化_1.6.2python 文件复制、CSV、序列化和反序列化

    1 文件复制 单个文件复制 多个文件复制 使用系统模块 os 获取指定文件夹的所有文件名 复制流程 根据地址读取源文件 将读取的写入新地址 地址用os模块获取的文件名和文件夹名整合而成 2 CSV文件的写入与读取 导入CSV模块 CSV文件
  • Qt 使用QMediaPlayer类在VS中播放音乐

    qt有许多类都可以进行播放音频文件 这里我主要讲QMediaPlayer类 如何在vs中进行播放音乐 所遇到的问题该如何解决 QMediaPlayer可以对各种后缀的音频文件进行播放 包括 wav mp3等 1 向 pro文件中添加代码 由
  • requirejs之demo

    具体的理论就不讲了 可以参考 http www ruanyifeng com blog 2012 10 javascript module html http www ruanyifeng com blog 2012 10 asynchro
  • Linux下c++遍历文件夹中文件及读取绝对路径

    文件读取等操作是程序编写的基础 因此在总结了网上多个博客的基础上 写出了如下读取文件及保存绝对路径的代码片段 整理出来供大家学习 注意 这里dirent h是只有在Linux下才有的 include
  • c高级 day2

    1 写一个1 sh脚本 将以下内容放到脚本中 在家目录下创建目录文件 dir 在dir下创建dir1和dir2 把当前目录下的所有文件拷贝到dir1中 把当前目录下的所有脚本文件拷贝到dir2中 把dir2打包并压缩为dir2 tar xz
  • ios小程序上传文件使用onHeadersReceived获取header中的参数

    在上周做小程序上传的时候出现的问题 由于使用的oss 在安卓手机上获取header中的Etag是可以正常获取的 到了ios上传获取不到header中的参数 尝试了很多方法 后来发现onHeadersReceived可以获取到header就去
  • vi中不区分大小写查找的两种方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在 vim中 进行关键字查找 如果内容中分了大小写的 那么 查找默认是区分了大小写的 比如 ssh的配置文件中 etc ssh sshd config中 要去禁用 root
  • sqlserver存储过程加密和解密

    加密存储过程 IF EXISTS SELECT name FROM sysobjects WHERE name encrypt this AND type P DROP PROCEDURE encrypt this GO USE pubs
  • Python 在 JMeter 中如何使用?

    要在JMeter中使用Python 需要使用JSR223 Sampler元素来执行Python脚本 使用JSR223 Sampler执行Python脚本时 需要确保已在JMeter中配置了Python解释器 并设置了正确的环境路径 1 确保
  • 性能测试-JMeter分布式测试及其详细步骤

    性能测试概要 性能测试是软件测试中的一种 它可以衡量系统的稳定性 扩展性 可靠性 速度和资源使用 它可以发现性能瓶颈 确保能满足业务需求 很多系统都需要做性能测试 如Web应用 数据库和操作系统等 性能测试种类非常多 有些概念也很相近 Lo
  • 如何编写一个完整的Linux命令

    作者 gzshun 原创作品 转载请标明出处 来源 http blog csdn net gzshun 一个完整的Linux命令需要有以下几个重要的部分组成 1 使用方法 2 命令行参数 3 移植性 1 使用方法 在每个命令当中 都需要提供
  • uniapp开发小程序,上传图片和视频功能

    1 需求 可以上传图片和视频 并且都可以删除 图片可以预览 2 效果图 3 代码
  • JS金额千分位加逗号,多种实例

    涉及到金额展示的都需要在千分位上加逗号 以下为vue项目的实例 1 在main js下挂载一个全局方法 金额千分位加逗号 Vue prototype amountRule amount gt let defaultAmount let se
  • 初探生物信息数据库——生信原理第一次实验报告(华农)

    初探生物信息数据库 生信原理第一次实验报告 华农 1 实验目的 熟悉NCBI数据库Entrez检索系统 会使用关键词检索NCBI UnitProtKB PubMed等数据库 能理解检索结果页面各条目含义 2 实验题目与解答 2 1 水稻抗病
  • quartus18.1--下载设置

    一 quartus下载流程 1 打开Quartus工程 点击 Start Compilation 按钮进行程序全编译 如下图所示 2 程序全编译无错误 编译信息如下图所示 3 3 点击 Programmer 快捷按钮 进入程序下载页面 如下
  • git修改历史提交(commit)信息

    一 修改最近一次提交的commit信息 1 首先通过 git log 查看commit信息 2 使用指令 git commit amend 进入命令模式 修改号commit信息保存后退出编辑模式 3 git push force 到远程仓库
  • 基于C++的带权无向图的实现 (二)- 遍历算法

    该系列文章是本人整理的有关带权无向图的数据结构和算法的分析与实现 若要查看源码可以访问我的github仓库 如有问题或者建议欢迎各位指出 目录 基于C 的带权无向图的实现 一 数据结构 基于C 的带权无向图的实现 二 遍历算法 基于C 的带

随机推荐

  • AD10创建自己的元器件库——PCB设计第二节

    一 在自己的元器件库里面添加一个七段数码管 绘制七段数码管的原理图 1 新建一个元器件库 如图所示 2 在集成库中新建两个文件并命名保存 3 打开First Schlib1 SchLib文件 在第四象限绘制一个矩形 4 添加引脚 如图所示
  • Vue中引入外部字体

    项目开发过程中 系统自带的字体通常美观性没那么强 所以有时候就需要我们自己引入字体包 来实现各种个性字体的效果 以下就是在vue项目中如何引入外部字体包并使用的方法 一 放置字体包 在assets下创建一个font文件夹 把下载的字体文件放
  • 微信小程序卡券样式

    微信小程序卡券样式 微信小程序 卡券 html
  • AndroidManifest.xml中android:configChanges的简介

    程序在运行时 一些设备的配置可能会改变 如 横竖屏的切换 键盘的可用性等 这样的事情一发生 Activity会重新启动 其中的过程是 在销毁之前会先 called onSaveInstanceState 去保存你应用中的一些数据 然后cal
  • 文档开发中预览/编辑/格式转换/内容提取/语言识别/文件服务器/相关的开源/商业组件和库

    能用于项目开发的office文件功能 pageoffice 在线编辑office http www zhuozhengsoft com java WebOffice java jsp 在线编辑office 商业版贵 kkFileView 文
  • 【Rust 日报】2021-09-26 RustConf 2021 项目精选

    RustConf 2021 项目精选 以下项目来自 RustConf 2021 移动构造函数 有可能吗 自引用 类型是一种对自身引用的类型 异步 Features 是当今 Rust 中最常见的自引用类型 但是 它们不能在不使引用无效的情况下
  • 【Python 1-15】Python手把手教程之——详解类Class以及类的使用

    作者 弗拉德 来源 弗拉德 公众号 fulade me 创建和使用类 使用类几乎可以模拟任何东西 下面来编写一个表示小狗的简单类Dog 它表示的不是特定的小狗 而是任何小狗 对于大多数宠物狗 我们都知道些什么呢 它们都有名字和年龄 我们还知
  • Scrapy笔记(2)- 完整示例

    这篇文章我们通过一个比较完整的例子来教你使用Scrapy 我选择爬取虎嗅网首页的新闻列表 这里我们将完成如下几个步骤 创建一个新的Scrapy工程 定义你所需要要抽取的Item对象 编写一个spider来爬取某个网站并提取出所有的Item对
  • 斐波纳契数列(f(n)=f(n-1)+f(n-2))问题

    package org nxt algorithm series import java math BigInteger fibonacci series author nanxiaotao public class FibonacciSe
  • C++的auto类型说明符详解 附易错实例

    博客内容 C 读取一行内个数不定的整数的方式 作 者 陈大大陈 个人简介 一个正在努力学技术的准前端 专注基础和实战分享 欢迎私信 欢迎大家 这里是CSDN 我总结知识和写笔记的地方 喜欢的话请三连 有问题请私信 目录 基本概念 易错点 易
  • 激光雷达建图之cartographer建图

    环境 ubuntu20 04 双系统 ros noetic 1 按照官网的方式安装 主要安装包括三个部分 cartographer cartographer ros ceres solver 如果完全按照官网进行安装 前两个没什么问题 但如
  • Git学习使用

    慢慢学习Git 探索Git上各路大神的佳作 good good study day day up Git初学 1 Git下载安装配置 2 Git架构浅谈 3 Git分支合并和解决冲突
  • 矩阵论的一些问题(最小多项式,jordan标准型,矩阵范数)

    1 最小多项式求法 比如例题A 1 2
  • Code Review 工具

    Crucible Atlassian 内部代码审查工具 Gerrit Google 开源的 git 代码审查工具 GitHub 程序员应该很熟悉了 上面的 Pull Request 在代码审查这里很好用 LGTM 可用于 GitHub 和
  • java基础速通(一)

    1 java基础语法 对象 类 方法 实例变量 2 java基本语法 大小写敏感 类名首字母大写 方法名首字母小写 源文件名与类名相同 主方法入口 3 类名 方法名 变量名命名规则 3 1 字母 下划线开头 3 2 首字符后可以是字母 下划
  • 黑马JVM总结(十二)

    1 五种引用 强软弱 实线箭头表示强引用 虚心线表示软弱虚终结器引用 在平时我们用的引用 基本都为强引用 比如说创建一个对象通过 运算符赋值给了一个变量 那么这个变量呢就强引用了刚刚的对象 强引用的特点 通过GC Root的引用链 能够找到
  • 最长公共子序列-Python-动态规划

    1 题目内容 题名为 最长公共子序列 题目要求 1 用动态规划算法思想设计最长公共子序列问题求解算法 并且对给定的数据 分两类 统一和自选 进行验证 2 要求分析算法的时间复杂性 3 与穷举算法 直接递归法 备忘录法进行对比并且形成分析报告
  • 如何释放已使用的EOS RAM,然后就可以自由买卖了

    昨天到今天 EOS RAM价格大跌 有一些用户想卖RAM 但是却发现大量RAM被占用 比如下图 这位伙伴找到我时 他说啥都没做但他的内存使用量怎么高达189k 然后我查了一下该账号的交易记录 发现他曾经部署过智能合约 然后他告诉我是他不小心
  • 分布式面试题

    文章目录 前言 一 大型网站系统的特点 二 拆分 VS 集群 三 微服务 VS SOA 四 前后端完全分离与Rest规范 总结 前言 大型网站系统的特点 拆分 VS 集群 微服务 VS SOA 前后端完全分离与Rest规范 一 大型网站系统
  • python类方法第一个参数_Python 类成员函数第一个参数self

    类的方法与普通的函数只有一个特别的区别 它们必须有一个额外的第一个参数名称 但是在调用这个方法的时候你不为这个参数赋值 Python会提供这个值 这个特别的变量指对象本身 按照惯例它的名称是self 你一定很奇怪Python如何给self赋