python中对_init_的理解及实例解析
一、self的位置是出现在哪里?
首先,self是在类的方法中的,在调用此方法时,不用给self赋值,Python会自动给他赋值,而且这个值就是类的实例--对象本身。也可以将self换成别的叫法例如seef,但不建议,因为大家习惯也默认了写成self。
二、self的值是什么?
self的值是Python会自动赋值的,而且值是对象本身。举例说明:类Dog,他的实例是d,那么,d调用类的方法jian(arge1,arge2)的时候,Python会自动转为Dog.jian(d,arge1,arge2)。self的值是Dog的实例d
由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。以学生类为例,通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:
注意:特殊方法“init”前后分别有两个下划线!!!
注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去:
和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
详解Python中的__new__、__init__、__call__三个特殊方法
__new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪来的self) __init__ : 对象的初始化, 是一个实例方法,第一个参数是self. __call__ : 对象可call,注意不是类,是对象. 先有创建,才有初始化.即先__new__,而后__init__. 上面说的不好理解,看例子. 1.对于__new__ class Bar(object): pass class Foo(object): def __new__(cls
-
详细解读Python中的__init__()方法
__init__()方法意义重大的原因有两个.第一个原因是在对象生命周期中初始化是最重要的一步:每个对象必须正确初始化后才能正常工作.第二个原因是__init__()参数值可以有多种形式. 因为有很多种方式为__init__()提供参数值,对于对象创建有大量的用例,我们可以看看其中的几个.我们想尽可能的弄清楚,因此我们需要定义一个初始化来正确的描述问题区域. 在我们接触__init__()方法之前,无论如何,我们都需要粗略.简单地看看在Python中隐含的object类的层次结构. 在这一章,我
-
python基础之包的导入和__init__.py的介绍
调用同级目录: – src |– mod.py |– test.py 若在程序test.py中导入模块mod, 则直接使用 import mod 或 from mod import * 调用子目录下的模块: – src |– mod.py |– lib | |– mod2.py |– test.py from lib.mod2 import * 或 import lib.mod2 调用上级目录下的文件 目录结构如下: – src |– mod.py |– lib | |– mod2.py |–
-
Python中__init__.py文件的作用详解
__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件. 通常__init__.py 文件为空,但是我们还可以为它增加其他的功能.我们在导入一个包时,实际上是导入了它的__init__.py文件.这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入. # package # __init__.py import re import urllib import sys impo
-
python中的__init__ 、__new__、__call__小结
1.__new__(cls, *args, **kwargs) 创建对象时调用,返回当前对象的一个实例;注意:这里的第一个参数是cls即class本身2.__init__(self, *args, **kwargs) 创建完对象后调用,对当前对象的实例的一些初始化,无返回值,即在调用__new__之后,根据返回的实例初始化:注意,这里的第一个参数是self即对象本身[注意和new的区别]3.__call__(self, *args, **kwargs) 如果类实现了这个方法,相当于把这个类型
-
深入理解Python中的 __new__ 和 __init__及区别介绍
本文的目的是讨论Python中 __new__ 和 __ini___ 的用法. __new__ 和 __init__ 的区别主要表现在:1. 它自身的区别:2. 及在Python中新式类和老式类的定义. 理解 __new__ 和 __init__ 的区别 这两个方法的主要区别在于:__new__ 负责对象的创建而 __init__ 负责对象的初始化.在对象的实例化过程中,这两个方法会有些细微的差别,表现于:如何工作,何时定义. Python中两种类的定义方式 Python 2.x 中类的定义分为
-
python中子类继承父类的__init__方法实例
前言 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的 初始化 . 注意:这个名称的开始和结尾都是双下划线. 父类A class A(object): def __init__(self, name): self.name=name print "name:", self.name def getName(self): return 'A ' + sel
-
python中对_init_的理解及实例解析
一.self的位置是出现在哪里? 首先,self是在类的方法中的,在调用此方法时,不用给self赋值,Python会自动给他赋值,而且这个值就是类的实例--对象本身.也可以将self换成别的叫法例如seef,但不建议,因为大家习惯也默认了写成self. 二.self的值是什么? self的值是Python会自动赋值的,而且值是对象本身.举例说明:类Dog,他的实例是d,那么,d调用类的方法jian(arge1,arge2)的时候,Python会自动转为Dog.jian(d,arge1,arge2
-
python中的RSA加密与解密实例解析
这篇文章主要介绍了python RSA加密与解密实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 什么是RSA: RSA公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种"由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制. 在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的.加密算法E和解密算法D也都是公开的.虽然解密密钥SK是由公开密钥PK
-
对python中if语句的真假判断实例详解
说明 在python中,if作为条件语句,当if后面的条件参数为真时,则执行后面的语句块,反之跳过,为了深入理解if语句,我们需要知道if语句的真假判断方式. 示例 在python交互器中,经过测试发现以下条件均为假,相当于False In [2]: if '': ...: print('ok') ...: In [3]: if 0: ...: print('ok') ...: In [4]: if None: ...: print('ok') ...: In [5]: if []: ...:
-
python中return的返回和执行实例
1 打印函数名和打印函数的执行过程的区别 例子1.1 def a(): print(111) print(a) # 打印a函数的内存地址,不会对a函数有影响,a函数不会执行 print(a()) # 打印a函数的打印部分,并打印a函数的返回值 打印结果: <function a at 0x0000000001D02E18> 111 None 总结: 打印函数名print(a),结果是把该函数的内存地址打印出来了. 打印函数的执行:print(a( )),打印该函数的执行程序中的print的部分
-
Python中的整除和取模实例
一 除法 1 正数除法 Python3中的除法中,除法/总是返回一个浮点数,如下: >>> 6/4 1.5 >>> 2/3 0.6666666666666666 如果只想得到整数的结果,丢弃分数部分,可以使用运算符 //: >>> 6//4 1 >>> 2//3 0 // 得到的是整除的结果,但是结果并不一定是整数类型的数,它与分母分子的数据类型有关系: >>> 6//4.0 1.0 >>> 2.0
-
python中super()函数的理解与基本使用
目录 前言 super的用法 super的原理 Python super()使用注意事项 混用super与显式类调用 不同种类的参数 总结 前言 Python是一门面向对象的语言,定义类时经常要用到继承,在类的继承中,子类继承父类中已经封装好的方法,不需要再次编写,如果子类如果重新定义了父类的某一方法,那么该方法就会覆盖父类的同名方法,但是有时我们希望子类保持父类方法的基础上进行扩展,而不是直接覆盖,就需要先调用父类的方法,然后再进行功能的扩展,这时就可以通过super来实现对父类方法的调用.
-
Python中Selenium模拟JQuery滑动解锁实例
本文介绍了Python中Selenium模拟JQuery滑动解锁实例,分享给大家,也给自己留个笔记 滑动解锁一直做UI自动化的难点之一,我补一篇滑动解锁的例子,希望能给初做Web UI自动化测试的同学一些思路. 首先先看个例子. 当我手动点击滑块时,改变的只是样式: 1.slide-to-unlock-handle 表示滑块,滑块的左边距在变大(因为它在向右移动嘛!) 2.Slide-tounlock-progress 表示滑过之后的背景黄色,黄色的宽度在增加,因为滑动经过的地方都变黄了. 除些
-
python中 chr unichr ord函数的实例详解
python中 chr unichr ord函数的实例详解 chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符.unichr()跟它一样,只不过返回的是Unicode字符,这个从Python 2.0才加入的unichr()的参数范围依赖于你的python是如何被编译的.如果是配置为USC2的Unicode,那么它的允许范围就是range(65536)或0x0000-0xFFFF:如果配置为UCS4,那么这个值应该是range(1114112)或0x
-
python中判断文件编码的chardet(实例讲解)
1.实测,这个版本在32位window7和python3.2环境下正常使用. 2.使用方法:把解压后所得的chardet和docs两个文件夹拷贝到python3.2目录下的Lib\site-packages目录下就可以正常使用了. 3.判断文件编码的参考代码如下: file = open(fileName, "rb")#要有"rb",如果没有这个的话,默认使用gbk读文件. buf = file.read() result = chardet.detect(buf)
-
python中字符串变二维数组的实例讲解
有一道算法题题目的意思是在二维数组里找到一个峰值.要求复杂度为n. 解题思路是找田字(四边和中间横竖两行)中最大值,用分治法递归下一个象限的田字. 在用python定义一个二维数组时可以有list和numpy.array两种方式,看了几篇python中二维数组的建立的博客发现大多都是建立的初始化的二维数组,而我需要通过文件读取得到的是字符串,再把字符串转换为二维数组,找不到解决方法还是决定自己来转换. 首先,最开始的字符串输出如下,数字之间有空格 思路就是把先按换行符进行切片,再对每一行的字符再
随机推荐
- FIF互动帮助手册系列-HTML手册 flash版
- SQL语句练习实例之三——平均销售等待时间
- oracle快速删除重复的记录
- python爬取NUS-WIDE数据库图片
- ASP.NET中高质量缩略图的生成代码
- PHP编写文件多服务器同步程序
- 当文本框的值发生改变时,触发事件,在IE中有效
- 手机平板等移动端适配跳转URL的js代码
- jQuery zTree树插件简单使用教程
- dos下删除文件夹和文件的方法
- 生成300个不同的随机数的SQL语句
- js利用与或运算符优先级实现if else条件判断表达式
- win2003用户必看
- Java模拟HTTP Get Post请求实现论坛自动回帖功能
- 动态改变gridview列宽度函数分享
- android Retrofit2+okHttp3使用总结
- C#页面之间跳转功能的小结
- linux防火墙iptables规则的查看、添加、删除和修改方法总结
- Docker Compose常用命令详解
- 面试中遇到的java逃逸分析问题