Python面试整理

1.面向对象有三大特性继承、多态和封装

继承是子类继承父类函数的使用叫做继承,子承父业
多态是子类可以修改父类的函数用法,开拓创新
封装是把一个函数的属性功能隐藏起来,只知道它的功能,不用在意具体实现,想要用的时候就它就行。

2.什么是装饰器,它的作用

装饰器是在不改变原本函数代码的情况下,拓展函数功能的一种函数。
python常见的装饰器由@classmethod、@staticmethod等

3.python中is和==的区别

is是必须值一样,id一样才是true,==是值一样就是true

4.jion和+拼接的区别

+每执行一次都会申请一块内存
join会先计算需要多大的内存来存放结果,然后一次性申请到位。优先使用jion

5.python的内存回收机制

1)引进计数:当一个对象被创建或被复制时引进计数+1,当一个对象被删除或销毁时引进计数-1,为0时释放。
2)内存池机制:用于管理和分配小内存的申请和释放,内存大小以256字节为界限,大于则通过malloc进行分配,小于则通过内存池分配。

6. _ _ new _ _, _ _ init _ _

new创建函数时调用,有返回值
inti创建函数后调用,无返回值,

7. * args和 * * kwargs的区别

当你不知道要给函数传多少个参数的时候,可以使用*args和 **kwargs
*args 表示任何多个无名参数,它本质是一个 tuple(元组)
**kwargs 表示关键字参数,它本质上是一个 dict(字典)
如果同时使用 *args 和 **kwargs 时,必须 *args 参数列要在 **kwargs 之前。

8.python中可变的数据类型

可变的为列表(list),字典(dict)
字典是通过hash表来创建的,通过键来查找值
列表是通过偏移量来查找值,索引效率来讲,字典的索引效率原因大于列表

9.什么是生成器?

有yield的函数就是生成器
yield用法,可以看作return,第一次函数运行到yield停止,被迭代后yield运行

10.什么是迭代器?

具有_ _iter _ _()和 _ _next _ ()这两个方法的就是迭代器
具有
_iter _ _()的是可迭代对象
一个一个取值,像for循环一样,
一次性的,只能往前走不能后退,只有next完才知道有多少值

11.什么是闭包?

函数里面的函数,装饰器本质也是一个闭包,

12.什么是匿名函数?

关键字lambda表示匿名函数,不想给函数起名字,就可以用匿名函数

13.python递归的最大层数?

998

14.python中的深浅拷贝

浅拷贝(copy):创建一个对象,将原对象的引用地址赋值给新的对象,两个对象指向的是同一块内存地址中的同一个值
深拷贝(deepcopy):将原对象的值完完全全拷贝一份,放到一个新的地址中,与原对象没有任何关系,相互独立

15.python调取数据库的数据

引入 pymysql ,
db = pymysql.connect(host=“localhost”,port=3306,database=‘test_db’,user=‘root’,password=‘123456’,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值