Python开发(人工智能/大数据/机器学习)Python查漏补缺

【查漏补缺】Python函数和面向对象41~60

2019-03-01  本文已影响3人  TensorFlow开发者

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__方法中去做。

上一篇 下一篇

猜你喜欢

热点阅读