两点水

This commit is contained in:
347073565@qq.com
2017-12-22 16:14:43 +08:00
parent fdbf518c1e
commit 1b69364df2
24 changed files with 53 additions and 54 deletions

View File

@@ -22,6 +22,6 @@ if __name__ == '__main__':
输出的结果:
![Python 类的魔术方法](https://user-gold-cdn.xitu.io/2017/8/7/b8baa846d8b0f968b14e1e485afb239d)
![Python 类的魔术方法](http://p1ceh5usj.bkt.clouddn.com/Python%20%E7%B1%BB%E7%9A%84%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95.png)
可以看到,一个类的魔术方法还是挺多的,截图也没有截全,不过我们只需要了解一些常见和常用的魔术方法就好了。

View File

@@ -16,7 +16,7 @@ user=User('两点水',23)
实际上,创建一个类的过程是分为两步的,一步是创建类的对象,还有一步就是对类进行初始化。`__new__` 是用来创建类并返回这个类的实例, 而`__init__` 只是将传入的参数来初始化该实例.`__new__` 在创建一个实例的过程中必定会被调用,但 `__init__` 就不一定比如通过pickle.load 的方式反序列化一个实例时就不会调用 `__init__` 方法。
![Python类创建的过程](https://user-gold-cdn.xitu.io/2017/8/3/dd588107e7e243bfbe11dc517fdb5308)
![Python类创建的过程](http://upload-images.jianshu.io/upload_images/2136918-a2b39b078cc81841?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
`def __new__(cls)` 是在 `def __init__(self)` 方法之前调用的,作用是返回一个实例对象。还有一点需要注意的是:`__new__` 方法总是需要返回该类的一个实例,而 `__init__` 不能返回除了 `None` 的任何值
@@ -56,4 +56,4 @@ if __name__ == '__main__':
其实在实际开发中,很少会用到 `__new__` 方法,除非你希望能够控制类的创建。通常讲到 `__new__` ,都是牵扯到 `metaclass`(元类)的。
当然当一个对象的生命周期结束的时候,析构函数 `__del__` 方法会被调用。但是这个方法是 Python 自己对对象进行垃圾回收的。
当然当一个对象的生命周期结束的时候,析构函数 `__del__` 方法会被调用。但是这个方法是 Python 自己对对象进行垃圾回收的。

View File

@@ -68,22 +68,22 @@ if __name__ == '__main__':
```txt
__eq__
num1 == num2 ? --------> False
num1 == num2 ? --------> False
__eq__
num1 != num2 ? --------> False
num1 != num2 ? --------> False
__lt__
num1 < num2 ? --------> True
num1 < num2 ? --------> True
__gt__
num1 > num2 ? --------> False
num1 > num2 ? --------> False
__le__
num1 <= num2 ? --------> True
num1 <= num2 ? --------> True
__ge__
num1 >= num2 ? --------> False
num1 >= num2 ? --------> False
```
@@ -109,4 +109,4 @@ num1 >= num2 ? --------> False
最后,如果对本文感兴趣的,可以关注下公众号:
![公众号](https://user-gold-cdn.xitu.io/2017/7/31/dc2347facde1d4b004faef7de0042b2a)
![公众号](http://twowater.com.cn/images/20171204192251900.gif)

View File

@@ -4,4 +4,4 @@
# 目录 #
![草根学Python Python 的 Magic Method](https://user-gold-cdn.xitu.io/2017/8/17/de0e1491506e81159ff4c6bdece91c73)
![草根学Python Python 的 Magic Method](http://p1ceh5usj.bkt.clouddn.com/%E8%8D%89%E6%A0%B9%E5%AD%A6Python%EF%BC%88%E5%8D%81%EF%BC%89%20Python%20%E7%9A%84%20Magic%20Method.png)