python中对_init_的理解及实例解析

yipeiwu_com5年前Python基础

一、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设计】。

相关文章

QML使用Python的函数过程解析

有2种方法: 一、 QML中定义一个信号,连接Python里的函数; 这里的函数不用特意指明为槽函数,普通函数即可。 QML的信号连接Python的函数 QML: 首先在QML中定...

python使用rsa非对称加密过程解析

python使用rsa非对称加密过程解析

这篇文章主要介绍了python使用rsa非对称加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、安装rsa 支持pyth...

python线程池(threadpool)模块使用笔记详解

最近在做一个视频设备管理的项目,设备包括(摄像机,DVR,NVR等),包括设备信息补全,设备状态推送,设备流地址推送等,如果同时导入的设备数量较多,如果使用单线程进行设备检测,那么由于设...

pytz格式化北京时间多出6分钟问题的解决方法

起步 在django框架中,用的是 pytz 库处理时区问题,所以我也尝试用这个库来处理。但发现了一个奇怪的问题: import datetime import pytz dt...

Python 等分切分数据及规则命名的实例代码

Python 等分切分数据及规则命名的实例代码

 将一份一亿多条数据的csv文件等分为10份,代码如下所示: import pandas as pd data = pd.read_csv('C:\\Users\\Pych...