国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > 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变量。

关注

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

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

美国伦理《轻佻寡妇》| 公媳欢情沈曼最新章节更新| 憋尿白丝小肚子凸起高冷知乎| 欧美电影免费观看电视剧大全 | 男生把女生QQ放在一起的原因 | 伦理《少妇的滋味》完整版| 《黏糊糊的你》免费观看| 大龟慢慢挺进我的体内| 一边吃奶一边做边爱会得白血病吗 | 老公在洗澡我被公干日本| 每日大赛| 夹腿高潮后注意力不集中能恢复吗 | 妈妈叫我戴上避孕套是什么歌 | 趴在办公桌把腿张开| 母与子免费观看大全电视剧 | 适合做前看的短篇小说| 黑丝美女| 《厨房激战5》完整版在线观看| 边做边流奶水的人妻| 乳头夹夹太紧好疼怎么缓解| 按摩店的待遇5HD| 日本无码A片人妻久尤物明理紬| 人口兽猪马狗第1集| 儿子日娘章节小说| 网曝黑料猛料吃瓜网| 李丽珍唯一一部打真军电影| 少女配狗视频大全播放| 特殊按摩治疗师| 没戴奶罩他含了一天| 《列车上的轮杆》1-4| 老师掀起裙子让我挺进| 《菊内留香》双男主| 戴上自安小玩具调到10档| 妈妈你真棒里面的插曲叫什么 | 强伦女教师2:伦理| 日本CSGO大姐姐AWP| 母亲とが话しています读音 | 免费双男主做酱酱酿酿的动漫| 《帐篷里的秘密》第一季| 法国《监狱伦理3》| 黑道第一宠婚