Python __init__ 特殊方法

Posted longxd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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__ 特殊方法的主要内容,如果未能解决你的问题,请参考以下文章

详解Python中的__new__、__init__、__call__三个特殊方法

python 中的特殊方法,纠正自己笨笨的记忆

__new____init____call__三个特殊方法

Python中的对象行为与特殊方法对象的创建与销毁

python类中几个特殊方法

python 的特殊方法 __str__和__repr__