深入理解python之self
首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗,不要搞另类,大家会不明白的。下例中将self改为myname一样没有错误:
1 class Person:2 def _init_(myname,name):3 myname.name=name4 def sayhello(myname):5 print 'My name is:',myname.name6 p=Person('Bill')7 print p
self指的是类实例对象本身(注意:不是类本身)。
1 class Person:2 def _init_(self,name):3 self.name=name4 def sayhello(self):5 print 'My name is:',self.name6 p=Person('Bill')7 print p
在上述例子中,
self
指向Person的实例p。 为什么不是指向类本身呢,如下例子:
1 class Person:2 def _init_(self,name):3 self.name=name4 def sayhello(self):5 print 'My name is:',self.name6 p=Person('Bill')7 p1 = Person('Apple')8 print p
如果self指向类本身,那么当有多个实例对象时,self指向哪一个呢?
转载于:https://www.cnblogs.com/4-312/p/3166593.html
深入理解python之self相关推荐
- 完全理解 Python 迭代对象、迭代器、生成器(转)
完全理解 Python 迭代对象.迭代器.生成器 本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators » nvie.com,俺写的这篇文章是 ...
- python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递
python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...
- 深入理解Python闭包概念
闭包并不只是一个Python中的概念,在函数式编程语言中应用较为广泛.理解python中的闭包一方面是能够正确的使用闭包,另一方面可以好好体会和思考闭包的设计思想. 1.概念介绍 首先看一下维基上对闭 ...
- python中元组_理解python中的元组
理解 python 中的元组 引言 在 Python 中元组是这样的: 元组是是这样一种数据结构:不变的或者不可改变的(简单来说不能重新赋值) .元素的有序序列.因为元组是 不变的,所以他的数值是不能 ...
- python中继承是什么意思_如何理解Python中的继承?python入门
如何理解Python中的继承?如今,python编程语言深受企业和个人的喜爱.python开发工程师是近年来互联网行业非常热门的职业岗位之一.学习python的人除了零基础的,还有一部分是在职运维.在 ...
- python装饰器原理-深刻理解python装饰器
我们要完全理解python装饰器,不是很容易,主要归结有如下困难: 1. 关于函数"变量"(或"变量"函数)的理解 2. 关于高阶函数的理解 3. 关于嵌套函数 ...
- python装饰器-理解Python装饰器(Decorator)
理解Python装饰器(Decorator) Python装饰器看起来类似Java中的注解,然鹅和注解并不相同,不过同样能够实现面向切面编程. 想要理解Python中的装饰器,不得不先理解闭包(clo ...
- python装饰器作用-理解python中的装饰器
一 什么是装饰器? 正如其名,装饰器的作用是为已经存在的对象增加额外功能(装饰),由此可使已有函数在无需代码改动的情况下增加额外功能:装饰器的本质是嵌套的函数且返回函数对象,即闭包.有关闭包的概念,可 ...
- python怎么导入包-如何理解Python中包的引入
Python的from import *和from import *,它们的功能都是将包引入使用,但是它们是怎么执行的以及为什么使用这种语法呢? 从一模块导入全部功能 from import * me ...
- 如何简单地理解Python中的if __name__ == '__main__'
如何简单地理解Python中的if __name__ == '__main__' 文章目录: 一.摘要 二. 程序入口 虽然已经知道这个具体的用法,但是这篇文章有很多细节写的还是很好,决定转载一下,日 ...
最新文章
- 转:Python 代码调试技巧
- 论对一个程序的满意程度 | 每日趣闻
- 分析师洞察:边缘数据中心的UPS系统
- GDCM:gdcm::UIComp的测试程序
- linux卸载已安装的java_Linux 中如何卸载已安装的软件(转载)
- mysql表 c#实体类,创建基于MySQL表中的C#类
- 【汇编语言】8086汇编语言的debug中,t和p命令的区别
- 用fiddler抓包小程序
- jq之$(“[href]“)
- python扫雷游戏课程设计小组任务计划与分配表_python实现扫雷游戏
- java mongodb开发_Java Tutorial:Java操作MongoDB入门
- python种颜色循环_python – 重置Matplotlib中的颜色循环
- Asp.Net MVC学习总结(三)——过滤器你怎么看?
- 阿里巴巴分布式调度引擎tbschedule实战三tbschedule的调度原理
- linux中help的用法
- java monitor怎么使用_Java monitor机制使用方法解析
- css制作 平行四边形和梯形导航条
- 【android】悬浮球
- 美国各州人口数据分析
- Tableau数据分析-Chapter07多边形地图和背景地图