1.Python中的不可变数据类型和可变数据类型是什么意思?
可变数据类型:改变值但是内存地址不发生改变,list(列表)、dict(字典)、set(集合,不常用)
不可变数据类型:改变值会导致内存地址发生了改变,数值类型(int、float、bool)、string(字符串)、tuple(元组)题
2.请简述Python中is和==的区别。
Python中的对象包含三个要素:id、type和value。
is比较的是两个对象的id。==比较的是两个对象的value。
3.请简述function(args, **kwargs)中的 args, kwargs分别是什么意思?
万能参数,解决了函数参数不固定的问题
*args:会把位置参数转化为tuple
**kwarg:会把关键字参数转化为dict
4.请简述面向对象中__new__和__init__的区别。
__new__至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别。
__ new__是一个静态方法(创建),而__init__是一个实例方法(初始化)
__new__方法会返回一个创建的实例,而__init__什么都不返回
只有在__new__返回一个类的本身的实例时,后面的__init__才能被调用
当创建一个新实例时调用__new__,初始化一个实例时用__init数
5.Python子类继承自多个父类时,如多个父类有同名方法,子类将继承自哪个方法?
按照顺序先继承A中的方法
Python语言中子类继承父类的方法是按照继承的父类的先后顺序确定的,例如,子类A继承自父类B、C,且B、C中具有同名方法Test(),那么A中的Test()方法实际上是继承自B中的Test()方法。
<