【查漏补缺】Python函数和面向对象41~60
41.如果函数返回的结果是元组,则小括号()是可以省略的,也是Python推荐的做法。
42.如果函数返回的结果是元组,同时希望单独处理所返回元组中的元素,则可以使用多个变量,一次性接收函数的返回结果。要特别注意:接收的变量的个数要和返回元组元素的个数一直才行,否则报错!
43.利用元组交换2个变量的值:a,b = b,a
44.函数:默认情况下,不管传递可变还是不可变参数,只对形参进行了赋值操作,是不会影响到实参的数据的。
45.函数:形参传递可变参数,当对形参调用方法增删改操作,是会影响到外部实参的数据的。
46.对list的+=操作,本质上是调用列表的extend()操作。如果形参为list,当对形参+=操作,是会影响到外部实参的数据的。
47.缺省参数:必须要保证带有默认值的缺省参数在参数列表末尾;也即:不是缺省参数的要放在缺省参数的前面。
48.当调用具有多个缺省参数的函数时,如果需要修改缺省参数的值,则要指定缺省参数的名称,Python解释器才能正确知道缺省参数的对应关系。
49.*args,形参前增加一个*,则表示该形参可以接收一个元组,即可变个参数。这种定义参数的形式,在调用时,是不用指定实参是元组,会把多个实参自动打包到元组给该形参。
50.**kwargs,形参前增加两个**,则表示该形参可以接收一个字典,即可变个参数。这种定义参数的形式,在调用时,是不用指定实参是和字典,编译器会把多个键值对实参自动打包到字典给该形参。
51.Python中拆包:*和**。在传实参时,在元组变量前增加一个*,在字典变量前增加**,可分别将元组传递给*args,和**kwargs。
52.Python是一个面向对象的编程语言,变量、数据、函数以及类都是一个个对象。
53.dir(obj)用来查看obj对象所有的属性和方法。利用好该函数,很多函数名都不必死记硬背了。
54.__双下划线开头双下划线结尾__的,表示Python内置的属性或方法。
55.在类中定义的方法,第一个参数必须是self。
56.打印内存地址,id(xxx)结果可以是十进制也可以是十六进制。想要十进制时,只需%d; 想要十六进制时,只需%x
57.哪一个对象调用的方法,self就是对哪个对象的引用。
58.当使用类名()来创建一个对象时,Python内部默认会帮助我们做2件事情:分配内存空间、初始化对象属性的值。而初始化对象属性的值,调用的就是__init__()函数。在__init__()函数中可以为对象添加任意个属性。
59.对初始化__init__()函数可以根据需要添加任意个参数。一旦这么做了,再用类名()来创建一个对象时,就需要传入对应的实参。
60.当一个对象从内存中销毁时,Python会自动回调__del__方法。基于此,如果我们希望当一个对象从内存中销毁时,还想让其做一些事情,就可以在该__del__方法中去做。