【python】魔法方法

作者: 米兰的小铁匠 | 来源:发表于2018-05-26 11:17 被阅读30次

    # 很特殊的一个名字,听着就很有魔法的样子~~我记得小时候看过《哈利波特》关于魔法的电影,很喜欢!

    # 进入正题,面向对象对我来说是一个很难搞定的一个东西,在建立需求的同时,一方面考虑怎么呈现出来,另一方面又要注意其中的一些传参等等各种引用~~~所以这东西可爱又可恨,因为用面向对象编程很爽,有一种很合理的感觉!

    #这次来说说其中的魔法方法。


    1. __init__();

    # Python 的类里提供的,两个下划线开始,两个下划线结束的方法,就是魔法方法,__init__()就是 一个魔法方法,通常用来做属性初始化 或 赋值 操作。

     # 如果类面没有写__init__方法,Python会自动创建,但是不执行任何操作, 

     # 如果为了能够在完成自己想要的功能,可以自己定义__init__方法, 

     # 所以一个类里无论自己是否编写__init__方法 一定有__init__方法。

    示例

    # 图中很明显的可以看出,该魔法方法可以通过self直接定义属性,并且自动初始化话。

    # 说明; 

    __init__() 方法,在创建一个对象时默认被调用,不需要手动调用 

    __init__(self) 中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用 传递过去。

    #注意;完全可以在类的外面设置属性,不过需要定义对象的时候传参。

    1. 通过一个类,可以创建多个对象,就好比 通过一个模具创建多个实体一样

    2. __init__(self) 中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那 么 __init__(self) 中出了self作为第一个形参外还需要2个形参,例如 __init__(self,x,y)


    2. __str__()方法;简单理解就是自动的返回指定的数据;

    示例

    # 程序运行就会看到str里返回的属性值;

    在python中方法名如果是 __xxxx__() 的,那么就有特殊的功能,因此叫做“魔法”方法

     当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了 __str__(self) 方法, 那么就会打印从在这个方法中 return 的数据 

    __str__ 方法通常返回一个字符串,作为这个对象的描述信息;


    3. __del__();

    创建对象后,python解释器默认调用 __init__() 方法;

    当删除对象时,python解释器也会默认调用一个方法,这个方法为 __del__() 方法

    示例

    # 当有变量保存了一个对象的引用时,此对象的引用计数就会加1;

    # 当使用del() 删除变量指向的对象时,则会减少对象的引用计数。如果对象的引用计数不为1, 那么会让这个对象的引用计数减1,当对象的引用计数为0的时候,则对象才会被真正删除 (内存被回收)。


    # 总结;

    目前来说,我们常用的也就这些魔法方法,可以很好的解决一些小问题,并且对代码有很好完整性,有一点魔法的感觉了!

    # 多说一局,环境成就一个人,同时也可以毁灭一个人,坚持本心,相干什么就去干,结果永远是不及过程来的重要!虽说基本上没什么人来阅读我写的显得粗陋的文章,但是我知道我在进步!

    相关文章

      网友评论

        本文标题:【python】魔法方法

        本文链接:https://www.haomeiwen.com/subject/qinpjftx.html