Python __init__ 特殊方法
在Python中有很多以双下划线开头且以双下划线结尾的固定方法。他们会在特定的时机被触发执行。
__init__ 就是其中之一,它会在实例化之后自动被调用。以完成实例的初始化。
>>> class test: #定义一个类
def func(self):
print('手动调用函数:',id(self)) #打印参数的id >>> a = test() #实例化对象a
>>> a.func() #用实例a调用函数func(),会把实例a当成一个参数,并且第一个传入到函数func()中。
手动调用函数: 1794999510856
>>>
>>> class test: #定义一个类,里面封装的函数使用了__init__特殊方法,这个方法会在初始化实例时自动调用
def __init__(self):
print('初始化实例时自动调用:',id(self)) >>> a = test() #实例化对象a,此时它会自动调用__init__,不需要类似a.func()的操作。
初始化实例时自动调用: 1794999587840
>>>
“析构”问题引入
>>> a = [1,2,3]
>>> b =a #变量的指向
>>> b
[1, 2, 3]
>>> a.append(5)
>>> a
[1, 2, 3, 5]
>>> b
[1, 2, 3, 5]
>>> del a #删除一个变量的指向。
>>> a
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
a
NameError: name 'a' is not defined
>>> b
[1, 2, 3, 5]
>>>
Python __init__ 特殊方法的更多相关文章
- 第8.8节 Python使用__new__方法和构造方法__init__完成类实例化的过程详解
第8.8节 Python使用__new__方法和构造方法__init__完成类实例化的过程详解 前面章节介绍了Python类中的__new__方法和构造方法__init__,并通过实例分析了二者之间关 ...
- python之__init__使用方法
定义类的时候,若是添加__init__方法,那么在创建类的实例的时候,实例会自动调用这个方法,一般用来对实例的属性进行初使化.比如:class testClass: def __init__(self ...
- python类及其方法
python类及其方法 一.介绍 在 Python 中,面向对象编程主要有两个主题,就是类和类实例类与实例:类与实例相互关联着:类是对象的定义,而实例是"真正的实物",它存放了类中 ...
- python内置方法
1. 简介 本指南归纳于我的几个月的博客,主题是 魔法方法 . 什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加"魔法"的特殊方法. 它们经常是 ...
- 【转】Python的神奇方法指南
[转]Python的神奇方法指南 有关Python内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Picklin ...
- python之魔法方法介绍
1.1. 简介 什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加“魔法”的特殊方法. 它们经常是两个下划线包围来命名的(比如 __init__ , __lt__ ) ...
- Python中sorted()方法的用法
Python中sorted()方法的用法 2012-12-24 22:01:14| 分类: Python |字号 订阅 1.先说一下iterable,中文意思是迭代器. Python的帮助文档中对i ...
- python数据模型(特殊方法)
python中的全部特殊方法 本部分内容可以参考官方网址 python中一共有83个特殊方法,其中47个用于算术运算.位运算和比较操作.我根据<流畅的python>中的整理,摘录如下两个表 ...
- Python 面向对象 特殊方法(魔法方法)
Python 的特殊方法,两边带双下划线的方法. 比如:__init__(self, ...).__del__(self) 1.__init__(self,...) : 构造方法 __init__(s ...
随机推荐
- gentoo: startx: drmsetmaster failed: permission denied
今天更新了 xorg-server 之后, startx 就进不了 X了,但是可以用 sudo startx 进入 X,所以感觉很奇怪. 后来终于在 gentoo 官方论坛上面找到答案了. https ...
- gentoo raid1
参考 gentoo wiki,和其他网页,实现两个硬盘组成 raid1. 两个硬盘一个是 sdc,一个是 sdd,都是 4T容量. 首先内核开启 Autodetect RAID arrays duri ...
- 5.分析mitmproxy的优势及工具mitmdump的使用(参照书籍)
mitmproxy优势:功能和charles.fiddler相似,强大之处在于它的工具 mitmdump 可以直接对接python 对请求做处理. mitmdump使用 : 1.mitmdump是mi ...
- 13.App爬取相关库的安装(Charles,Mitmproxy,Appium)
由于App没有像浏览器一样直观的后台请求工具,主要用一些抓包技术抓取数据.(目前也在学习安装,参考书籍.) 首先呢,一些简单的接口通过Charles或mitmproxy分析,找出规律,直接用程序去抓取 ...
- Hive Ntile分析函数学习
NTILE(n) 用于将分组数据按照顺序切分成n片,返回当前记录所在的切片值 NTILE不支持ROWS BETWEEN,比如 NTILE(2) OVER(PARTITION BY cookieid O ...
- Python基础1 介绍、基本语法
---恢复内容开始--- 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表 ...
- 【ASP.NET 进阶】Flv视频文件在线播放示例
最近要做个播放Flv文件的东东,网上找到一个合适的,效果如下(GIF录制软件不太好,差不多就是这样子,不过在浏览器上很流畅,具体代码可以看源代码): 源代码:FlvVideoSee.zip 问题说明: ...
- SqlDataSource.FilterExpression Property
SqlDataSource.FilterExpression Property 定义 命名空间: System.Web.UI.WebControls Assembly: System.Web.dll ...
- 07.linux系统管理命令
1.图形界面管理: 如想从图形界面切换至字符界面 输入 init 3 如想字符界面切换至图形界面 init 5 2.进程管理: kill 杀死一个进程 Kill -9 强制杀死一个进程 stat ...
- Spring Cloud (5)hystrix 服务降级
一.是什么 二. 2.1 2.2 2.3 2.4 2.5 yml