国产成人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变量。

关注

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

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

宝宝扶着水池乖乖让爸爸洗头文 | 麻花传剧原创MV在线看完整版高..| 国内夫妇交换自拍视频| 欧美大片PPT| 《再来一次好吗》免费观看| 教室停电插班花原文小说| 初次尝了销魂少妇邻居| 舒淇与黑人性猛交| 《疯狂72小时》韩剧| 打扑牌不盖被子怎么办| 高压监狱在线观看免费高清完整| 少妇大屁股白浆流出白浆| 国产三级做爰在线播放| 男人晚上吃奶时乳房会变| 松坂庆子| 无套内谢A片毛片免费| 外围女孩| 电影《满足2》完整版在线观看 | 《被按摩的人妻4》| 97在线观看免费高清电视剧大全...| 第一次挺进苏雨瑶的身体电影| 可儿的奶水喂爸爸吃可以吗| 怎么弄出白色粘液视频教程| 拔小萝卜免费观看全集电视剧| 《魅魔之耻》1~4集免费看| 鲍鱼| 天美麻花星空影视免费观看电视剧| 摄影师把我的奶头掏出来了| 榴莲APP官网下载1.0.3| “特殊军营”BY紫陌| 叔嫂发生过关系后的心理变化 | 麦子交换2免费完整版| 《相濡以沫的夜晚》动漫免费观看 | 同学的母亲中字ID| 高压监狱4伦理HD| 美国伦理巜干柴烈火2| 《丰满的女邻居》播放| 把老婆闺蜜干了俩次| 《艳乳欲乱2》免费观看| 《女仆教育》动漫第一季| 苍井空做爰高潮A片