python魔法方法__init__() __str__() __del__() __new__()

1.  __new__()

__new__是用来创建对象并返回之的方法

#!/usr/bin/python
# -*- coding: utf8 -*-
class A:
    def test(self):
        return 1
if __name__ == "__main__":
    a = A()
    print type(a)

此时已经通过__new__方法创建一个对象,但是该对象没有属性

2. __init__():只是用来将传入的参数初始化给对象

python魔法方法__init__() __str__() __del__() __new__()_第1张图片

此时通过__init__方法,已经给对象添加a属性、b属性,当我们再创造对象时,就必须传递两个属性值,否则会报错。

另外:

(1)在创建一个对象时,该方法被自动调用,不需要人工调用

(2)该方法默认有一个参数self,当我们创建对象时,传递了两个实参,我们需要给出两个形参,即__init__(self,x,y)

(3)__init__(self) 中的self参数, 不需要开发者传递, python解释器会自动进行传递

3.__str__():相当于java中的tostring方法

python魔法方法__init__() __str__() __del__() __new__()_第2张图片

当使使用print输出对象的时候, 只要我们定义了 __str__(self) 方法, 那么就会打印从在这个方法中return的数据,相当于对对象进行格式化输出。

4.__del__() 方
创建对象后, python解释器默认调用 __init__() 方法;当删除一个对象时, python解释器也会默认调用一个方法, 这个方法
__del__() 方



 

 

 

 

            

 

你可能感兴趣的:(python语言基础)