Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上。后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了。

首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗(为了和其他编程语言统一,减少理解难度),不要搞另类,大家会不明白的。

下例中将self改为myname一样没有错误:

class Person:

def _init_(myname,name):

myname.name=name

def sayhello(myname):

print 'My name is:',myname.name

p=Person('Bill')

print p

self指的是类实例对象本身(注意:不是类本身)。

class Person:

def _init_(self,name):

self.name=name

def sayhello(self):

print 'My name is:',self.name

p=Person('Bill')

print p

在上述例子中,self指向Person的实例p。 为什么不是指向类本身呢,如下例子:

class Person:

def _init_(self,name):

self.name=name

def sayhello(self):

print 'My name is:',self.name

p1=Person('Bill')

p2 = Person('Apple')

print p1

如果self指向类本身,那么当有多个实例对象时,self指向哪一个呢?

总结

self在定义时需要定义,但是在调用时会自动传入。

self的名字并不是规定死的,但是最好还是按照约定是用self

self总是指调用时的类的实例。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python编程是干啥用的-浅谈Python类中的self到底是干啥的相关推荐

  1. python中类里self_Python类中的self到底是干啥的

    Python类中的self到底是干啥的 Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的 ...

  2. python 读excel字符型 数值_浅谈python 读excel数值为浮点型的问题

    浅谈python 读excel数值为浮点型的问题 如下所示: #读入no data = xlrd.open_workbook("no.xlsx") #打开excel table = ...

  3. python老是报参数未定义_浅谈Python程序的错误:变量未定义

    Python程序的错误种类 Python程序的错误分两种.一种是语法错误(syntax error).这种错误是语句的书写不符合Python语言的语法规定.第二种是逻辑错误(logic error). ...

  4. python的re2和re区别_浅谈Python中re.match()和re.search()的使用及区别

    1.re.match()fvk免费资源网 re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None.fvk免费资源网 包含的参数如下: ...

  5. Python类中的self到底是干啥的

    Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了. 首先明确的是s ...

  6. python类self_Python类中的self到底是干啥的

    Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了. 首先明确的是s ...

  7. 学习笔记——Python类中的self到底是干啥的

    Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了. 1.self是 ...

  8. 浅谈C++类中的默认成员函数

    概述 在C++中,类与C语言中的结构体类似,类与结构体的不同之处便是在其内部多了几个成员函数还有几个访问限定符,访问限定符有public(公共).protected(保护).private(私有),而 ...

  9. python并发编程之semaphore(信号量)_浅谈Python并发编程之进程(守护进程、锁、信号量)...

    前言:本博文是对Python并发编程之进程的知识延伸,主要讲解:守护进程.锁.信号量. 友情链接: 一.守护进程(daemon) 1.1 守护进程概念 首先我们都知道:正常情况下,主进程默认等待子进程 ...

最新文章

  1. 曳舞---1、曳舞各个动作要点
  2. php调用for循环函数吗,我需要将“函数”与“for循环”结合使用php
  3. 华南理工大学网络教育计算机答案,计算机电路基础·随堂练习2019春华南理工大学网络教育答案.doc...
  4. Azure IoT Hub和Event Hub相关的技术系列-索引篇
  5. PHP导航猫导航系统源码
  6. 最容易被你忽略的Mac神级功能!Mac访达里一切皆可标记
  7. RTP 包格式 详细解析
  8. java jxls_java操作excel及jxls(Z)
  9. 推荐-最新PSP游戏下载,不用注册直接下载!(1)
  10. 数据库设计-简化字典表
  11. 移动端扫描vin码/车架号识别
  12. 西部素质教育杂志西部素质教育杂志社西部素质教育编辑部2022年第13期目录
  13. CSS CSS3 pdf 电子书大全 百度云
  14. K3S执行命令提示You must be logged in to the server (Unauthorized)
  15. React学习笔记之三(关于setState的若干问题及其讨论)
  16. HDU-5755-Gambler Bo-高斯消元
  17. comsol如何定义狄利克雷边界_在变分问题中指定边界条件和约束
  18. 杭电OJ 1129(C++)
  19. Ubuntu格式化U盘以及分区
  20. 【Unity打包崩溃】安卓包遇到CrashReport-Native: Faile to open comm file(/system/build.prop)就闪退

热门文章

  1. 自我学习SSM框架集成(二)
  2. 【职业规划和代码库设计】
  3. Android 开发学习随笔
  4. ASP.NET环境下配置FCKEditor并上传图片及其它文件
  5. CSS布局--head区的其他设置
  6. unix,linux,windows 哪个更好,更适合做服务器
  7. 数控技能大赛计算机程序设计员,2018全国技能大赛–第八届全国数控技能大赛通知...
  8. 编程入门python语言是多大孩子学的-如何看待将Python作为少儿编程的基础语言?...
  9. python新手教程 从零开始-让你从零开始学会写爬虫的5个教程(Python)
  10. python就业方向及工资-【行情分享】python就业方向与薪资大揭秘