关闭
当前位置:首页 - 西甲联赛 - 正文

蓝天白云,16个Python常用魔法函数知多少?10以上便是合格的Python程序员-灵活滑动隔断保护隐私,老房也可以宽敞明亮

admin 2019-11-05 293°c

发现有许多想要学习Python却不知道怎样下手的朋友,我这儿整理了一些关于Python的学习材料,从根底到入门到实战都有!有需求的朋友能够重视并私信“01”免费获取...

1、__ init__():

一切类的超类object,有一个默许包括pass的__ init __()完成,这个函数会在目标初始化的时分调用,咱们能够挑选完成,也能够挑选不完成,一般主张是完成的,不完成目标特点就不会被初始化,尽管咱们依然能够对其进行赋值,可是它现已成了隐式的了,编程时显现远比隐式的更好,看下面的小栗子:

咱们能够经过vars函数获悉显现声明的特点,可是隐式的就无法获悉了,这并不值得发起,可是在知道参数的情况下咱们仍是能够对其进行赋值的,如下:

不管怎样样,显现的愤恨的小孩初始化特点是一个好习惯。

2、__ str__():

直接打印目标的完成办法,__ str__是被print函数调用的,一般都是return一个什么东西,这个东西应该是以字符串的办法体现的。假如不是要用str()函数转化,咱们可迅雷看看播放器以直接print的目标都是完成了__ str__这个办法的,比方d湖南台直播在线观看ict。解小石看下面的比如。

__ str__是dict其间的一个办法,这个办法的完成赋予了它直接被print的才能,知道这些,咱们就能够给自己的类界说这个办法使其能够print了,比如如下:

可是这个函数回来值有必要为string,不然会抛反常:

3、__ new__():

在object类中存在一个静态的__ new__(cls, *arg奥特曼动画片s, **kwargs)办法,该办法需求传递一个参数cls,cls表明需求实例化的类,此参数在实例化时由Python解说器主动供给,__ new__办法有必要有回来值,且回来的是被实例化的实例,只需在该实例回来后才会调用__ init__来进行初始化,初始化所用的实例就是__ new__回来的成果,也就能够认为是sel蓝天白云,16个Python常用魔法函数知多少?10以上就是合格的Python程序员-灵敏滑动间隔维护隐私,老房也能够宽阔亮堂f,咱们来看下面的比如:

能够看到,在实例化时分,先履行__ new__再履行__ init__,而且python会主动传入咱们期望实例化的类,的这儿咱们显现的调用了object的色博士导航__ new__,也能够调用其他的父类的__ new刘杀鸡__,那么假如咱们界说了__ new__,可是并没有回来一个自身实例,会发作什么事呢?比如如下:

能够看到自身的__ init__函数并未被石河子调用,而是调用了s海蛇tr的__ init__,或许这样并不直观,那么换一个实例回来,如下:

这个就比较显着了,另一个实例的__ init_蓝天白云,16个Python常用魔法函数知多少?10以上就是合格的Python程序员-灵敏滑动间隔维护隐私,老房也能够宽阔亮堂_被调用了。

4、__ unicode__():

__ unicode__()办法是在一个目标妻威平舒道上调用unicode()时被调用的。由于Django的数据库后端会回来Unicode字符串给model特点,所以咱们一般会给自己的model写一个__ unicode__()办法。假如界说了__ unicode__()办法可是没有界说__ str__()办法,Django会主动供给一个__ str__()办法调用 __ unicode__()办法,然后把成果转化为UTF-8编码的字符串目标,所以在一般情况下,只界说__ unicode__()办法,让 Django来处理字符串目标的转化,看蓝天白云,16个Python常用魔法函数知多少?10以上就是合格的Python程序员-灵敏滑动间隔维护隐私,老房也能够宽阔亮堂一个小栗子:

在django中,尽管没有界说__ str__,可是django会将__ unicode__转为了str,当然你调用unicode愈加是没有问题的。

5、__ call__():

目标经过供给call()办法能够模仿函数的行为,假如一个目标供给了该办法,就能够像函数相同运用它,仍是用比如进行阐明。

能够看到,咱们在像运用函数相同运用类主动充电电动车,实在是很有意思的事。

6、__ len__():

len调用后会调用目标的__ len__函数,咱们能够为其定制输出,如下比如:

可是该函数要求咱们回来的值有必要为int,不然会报错,如下:

7、__ repafraidr__():

函数str() 用于将值转化为适于人阅览的办法,而repr() 转化为供蓝天白云,16个Python常用魔法函数知多少?10以上就是合格的Python程序员-灵敏滑动间隔维护隐私,老房也能够宽阔亮堂解说器读取的办法,某目标没有适于人阅览的解说办法的诙谐笑话话,str() 会回来与repr(),所以print展现的都是str的格局。比如:

8、__ setattr胡志明__():

该函数可蓝天白云,16个Python常用魔法函数知多少?10以上就是合格的Python程序员-灵敏滑动间隔维护隐私,老房也能够宽阔亮堂以设置函数的特点,文字不知怎样描绘,直接上比如:

从上例能够看出,__ setattr__函数能够支撑目标添加特点,咱们能够有方案的修正添加特点的内容。

9、__ getattr__()

获取目标特点,只需在特点没有找到的时分调用,仍是看比如:

第一个特点能够找到,所以不会调__ getattr__,第二个特点蓝天白云,16个Python常用魔法函数知多少?10以上就是合格的Python程序员-灵敏滑动间隔维护隐私,老房也能够宽阔亮堂找不到,所以会调用到。

10、__ getattribute__():

该函数和上面介绍的__ getattr__很像,都是获取特点,可是__ getattr__是在特点不存在时被调用,而__ getattribute__是无条件被调用,我国传统节日这样会便利咱们做一些操控,需求留意,一旦界说了__ getattribute__,则__ getattr__不再会被调用,除非显式调用,比如如下:

11、__ delattr__():

本函数的作用是删去特点,完成了该函数的类能够用del 指令来删去特点,下面仍是看个比如。

12、__ setitem__():

该函数能够给目标赋值,咱们能够以下标的办法对其进行操作,下面看个比如。

13、__ getitem__():

与上函数相反,__ getitem__能够使目标支撑已下标的办法获取值,比如如下:

这一类魔法函数对咱们来说最大的优点是能够添加代温碧泉蓝皙四件套码的高雅程度,而且能够滕便利的进行流程的操控,上面的比如,咱们向操作字典相同在操作一个目标,而且在赋值与取值时都进行了改变,实在是比较好玩。

14、__ delitem__():

该函数支撑以下标办法删去目标数据,实坤现了这三个函数,这个类就像字典相同,具有了根本的增删查功用,有时分这样写会很便利。

15、__ iter__():

只需界说了__ iter__蓝天白云,16个Python常用魔法函数知多少?10以上就是合格的Python程序员-灵敏滑动间隔维护隐私,老房也能够宽阔亮堂()办法目标,就能够运用迭代器拜访,这意味着,咱们能够迭代咱们自己界说的目标,比如如下。

16、__ del__():

这能够说是一个析构器,或许收回器,在目标引证数降到0时履行,有时或许还需求等一会再履行,所以一般不引荐运用,可是在代码中咱们偶然能够用它来完成成人色情小说一些有必要要做的,可是并不紧迫的事,下面是个比如。

能够看到,在目标不再被引证后,会运转__ del__函数。

标签: 未定义标签
admin 14文章 0评论 主页

  用户登录