# 很特殊的一个名字,听着就很有魔法的样子~~我记得小时候看过《哈利波特》关于魔法的电影,很喜欢!
# 进入正题,面向对象对我来说是一个很难搞定的一个东西,在建立需求的同时,一方面考虑怎么呈现出来,另一方面又要注意其中的一些传参等等各种引用~~~所以这东西可爱又可恨,因为用面向对象编程很爽,有一种很合理的感觉!
#这次来说说其中的魔法方法。
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的时候,则对象才会被真正删除 (内存被回收)。
# 总结;
目前来说,我们常用的也就这些魔法方法,可以很好的解决一些小问题,并且对代码有很好完整性,有一点魔法的感觉了!
# 多说一局,环境成就一个人,同时也可以毁灭一个人,坚持本心,相干什么就去干,结果永远是不及过程来的重要!虽说基本上没什么人来阅读我写的显得粗陋的文章,但是我知道我在进步!
网友评论