韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python基础教程 > Python之类方法、__new__方法和__init__方法介绍

Python之类方法、__new__方法和__init__方法介绍

头像

爱喝马黛茶的安东尼

2019-07-03 11:51:103319浏览 · 0收藏 · 0评论

在编程语言中创建一个类,有构造方法这样的一个术语。而在Python中,通常大家都认为__init__是构造方法,其实并不完全等同。在构建类中,有一个特殊的方法__new__,这个才能等同为构造方法。

__new__是一个类方法,我们在定义一个类方法时需要在函数前打上@classmethod装饰器,而__new__不需要,因为它经过特殊处理。为了理解__new__方法,我们先来看看类方法是什么。

类方法

class MyClass:
    @classmethod
    def test(cls):
        print(cls.__name__)
        
MyClass.test()
#输出 MyClass

在MyClass类中,test方法就是类方法,它传入第一个参数为cls,其实就是MyClass类,打印cls.__name__可以看到结果。类方法可以直接 类名.方法名()调用。通常类方法是备选构造方法。

类方法的应用

>>> from datetime import datetime
>>> datetime.fromtimestamp(324234)
datetime.datetime(1970, 1, 5, 2, 3, 54)

如上所示,内置的datetime包中的fromtimestamp就是类方法,可以从多种方式构造出datetime对象。

相关推荐:《Python视频教程

__new__方法

def __new__(cls, a):
    return super().__new__(cls)

__new__是类方法,所以第一个参数也是cls,剩下的参数就是构造方法里需要的参数了。通常__new__都不需要定义,在元类编程中才需要,它可以控制类的生成过程。

__new__必须返回一个实例(instance),传入到__init__方法中的self参数,也就是实例变量。这里返回父类(object)的__new__方法用来创建一个新的实例。相当于

obj = object.__new__(MyClass)
obj = MyClass()
#obj是实例,上面两个方式等同

其中,MyClass是类,obj是实例(instance)

__init__方法

__new__是构造方法,那么__init__就是初始化函数,它负责将变量绑定到实例中,更新实例的__dict__字典。其中第一个参数self就是__new__的返回值,是类的实例。__new__方法先于__init__方法执行。

def __init__(self, a):
    self.a = a

结合使用

class MyClass:
    def __new__(cls, a):
        return super().__new__(cls)
    def __init__(self, a):
        self.a = a
obj = MyClass(3)
print(obj.a)

要点

1.__new__是构造方法,__init__是初始化函数。

2.__new__通常不需要手动定义,一般在元类编程中使用,控制类的生成过程。

3.__new__第一个被执行,然后执行__init__绑定实例变量。

4.__new__必须有返回值,返回值是该类的实例,它会被__init__函数接收,通常叫做self变量。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

人与动物胶配方视频荷尔蒙| 黑色黄丝包臀紧身连衣裙| 挤公交忘穿内裤被挺进H视频| 99久久无码-区人妻A片潘金莲| 女人乱子伦xXX沧州| 真爱禁区电视剧免费观看全集| 苍井空《办公室爱欲》| 白日梦我小说| 老公拿狗给我配| 温柔女教师在线观看电视剧大全 | 开裆裤法国1980年| 音响怎么选| 私密浏览器看片| 俩个人做AJ的视频教程大全| 办公室刺激战场第二季在线观看| B站暴躁女RAPPER| 偷吃爸爸擎天柱1-100集| 《法国空乘4》在线观看| 《黏糊糊的你》动漫免费观看| 妈妈的职业4免费观看全集在线播..| 法国版《灭火宝贝》中文翻译| 满清十大酷刑| 黑料吃瓜| 连体裤| 二人生猴子全程免费| 我和两个小婕子做过爱| 入室強暴強焱人妻HD| 免费观看《艳乳欲乱2》| 深田咏美在线| 麻花传MV在线观看第15集预告 | 喜爱夜蒲在线观看| 巨茎挺进李淑芬的体内视频| 强伦轩女教师在线播放| 床3| 调教男爵夫人| 姐姐片多多免费高清电视剧| 豆传媒剧国产MV有什么特点| 情满四合院大结局| 日本大片又大又好看的PPT| CHINESE少妇偷| 女的高潮过后第二次需要多久恢复