Pthon魔术方法(Magic Methods)-实例化

          Pthon魔术方法(Magic Methods)-实例化

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.实例化一个对象

  __new__:
    该方法需要返回一个值,如果该值不是cls的实例,则不会调用"__init__"。该方法永远都是静态方法。

二.案例展示

 1 #!/usr/bin/env python
 2 #_*_conding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 
 6 class Person:
 7     def __new__(cls, *args, **kwargs):
 8         print(cls)
 9         print(args)
10         print(kwargs)
11         # return super().__new__(cls)
12         return 2019
13 
14     def __init__(self,name):
15         self.name = name
16 
17 print("{0} 我是分割线 {0}".format("*" * 20))
18 p1 = Person("Jason Yin")
19 
20 print("{0} 我是分割线 {0}".format("*" * 20))
21 print(p1)
22 
23 
24 
25 #以上代码执行结果如下:
26 ******************** 我是分割线 ********************
27 <class '__main__.Person'>
28 ('Jason Yin',)
29 {}
30 ******************** 我是分割线 ********************
31 2019

三.总结

  __new__方法很少使用,即使创建了该方法,也会使用return super().__new__(cls)基类object的__new__方法来创建实例并返回。
原文地址:https://www.cnblogs.com/yinzhengjie/p/11204740.html