工厂函数
工厂函数名字叫函数,其实不是函数,是类,返回的都是对象,本文要说的以下几种都是工厂函数:
int、str、float、list、tuple、dict、set、frozenset
一、int
返回一个整型对象,在int类中重写了很多算数类的魔法方法,如加__add__、减__sub__、乘__mul__、地板除__floordiv__,就是当对两个int型对象执行算数操作的时候自动执行的魔法方法,先拿加法举一个简单的例子:
我们先来看int类中__add__的魔法方法是怎样一个形式:
| __add__(...)
| x.__add__(y) <==> x+y
首先我们需要知道如果我们这样写:x=5,那么数字5就被python解释为一个int类的对象,这些是python自动帮我们完成的,接下来又把5赋值给x,所以x也是一个int类对象。执行加法运算时+两边必须都是int类对象,而且是+左边是主动的去加右边的数字,我们看代码x.__add__(y) <==> x+y,如果x不是int类对象,那么就不会调用到int类的这个相加的魔法方法,如果x是int类,而y不是int类对象,程序就会报错,报错信息如下:
image.png
类型错误:+操作符不支持int类和str类相加
如果把顺序换一下,我们再来看报错信息: