1.简要描述Python的垃圾回收机制(garbage collection)

Python中的垃圾回收是以引用计数为主,标记-清除分代收集为辅。

•引用计数:Python在内存中存储每个对象的引用计数,如果计数变成0,该对象就会消失,分配给该对象的内存就会释放出来。•标记-清除:一些容器对象,比如list、dict、tuple,instance等可能会出现引用循环,对于这些循环,垃圾回收器会定时回收这些循环(对象之间通过引用(指针)连在一起,构成一个有向图,对象构成这个有向图的节点,而引用关系构成这个有向图的边)。•分代收集:Python把内存根据对象存活时间划分为三代,对象创建之后,垃圾回收器会分配它们所属的代。每个对象都会被分配一个代,而被分配更年轻的代是被优先处理的,因此越晚创建的对象越容易被回收。

2.简述面向对象中newinit区别?

1、__new__至少要有一个参数 cls,代表当前类,此参数在实例化时由Python解释器自动识别。2、__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以 return 父类(通过 super(当前类名, cls))__new__出来的实例,或者直接是 object 的__new__出来的实例。3、__init__有一个参数 self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值。4、如果__new__创建的是当前类的实例,会自动调用__init__函数,通过 return 语句里面调用的__new__函数的第一个参数是 cls 来保证是当前类实例,如果是其他类的类名,;那么实际创建返回的就是其他类的实例,其实就不会调用当前类的__init__函数,也不会调用其他类的__init__函数。

3.列出 Python 中可变数据类型和不可变数据类型,为什么?

1、可变数据类型:list、dict、set 2、不可变数据类型:int/float、str、tuple 原理:可变数据类型即公用一个内存空间地址,不可变数据类型即每产生一个对象就会产生一个内存地址。

4.python 中交换两个数值

a,b=1,2a,b=b,a

5.遇到 bug 如何处理

•简单直接、粗暴有效的就是用print()把可能有问题的变量打印出来看看。•凡是用print()来辅助查看的地方,都可以用断言(assert)来替代。•把print()替换为logging是第三种方式,和assert比,logging不会抛出错误,而且可以输出到文件。•启动python的调试器pdb,让程序以单步方式运行,可以随时查看运行状态。

6.使用 pop 和 del 删除字典中的"name"字段,dic={"name":"zs","age":18}

dic = {"name": "zs", "age": 18}dic.pop('name')del dic['age']print(dic)

7.列出几种魔法方法并简要介绍用途

__init__:对象初始化方法__new__:创建对象时候执行的方法,单列模式会用到__str__:当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据__del__:删除对象执行的方法

8.请说明 sort 和 sorted 对列表排序的区别

•sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。•sorted(L)返回一个排序后的L,不改变原始的L,L.sort()是对原始的L进行操作,调用后原始的L会改变,没有返回值;所以a = a.sort()是错的啦!a = sorted(a)才对。•sorted()适用于任何可迭代容器,list.sort()仅支持list(本身就是list的一个方法),sorted使用频率比list.sort()更高些,所以Python中更高级的排序技巧便通过sorted()来演示

9.Python 字典和 json 字符串相互转化方法

    import json    dic = {"name":"zs"}    res = json.dumps(dic)    print(res,type(res))    ret = json.loads(res)    print(ret,type(ret))

10、is和==区别?

is:比较两边的内存地址是否相等,是比较两个引用是否指向了同一个对象(引用比较)

==:比较两边的数值是否相等。

 a = [1, 2, 3] b = a print(a is b) print(a == b) c = copy.deepcopy(a) print(a is c) print(a == c) -------------  True  True  False  True

推荐阅读

Python 经典面试题 一

python sorted函数_Python 经典面试题 二相关推荐

  1. [ZZ]知名互联网公司Python的16道经典面试题及答案

    知名互联网公司Python的16道经典面试题及答案 https://mp.weixin.qq.com/s/To0kYQk6ivYL1Lr8aGlEUw 知名互联网公司Python的16道经典面试题及答 ...

  2. python中bytearray和java中byte[]的区别_Python经典面试题:说说Python中xrange和range的区别?...

    昨晚一小伙后台问xrange和range有啥区别,讲了下他倒领悟的挺快,其实这也是你各面试Python岗位,经常会遇到的Python面试题,长个心眼哈,说不定明年3月你找工作就用上了. 废话不多说,开 ...

  3. python sorted原理_Python sort()和sorted()

    Python sort()和sorted() sort 与 sorted 区别: sort() sort()是列表list的方法之一 L.sort(key=None, reverse=False) s ...

  4. python polar函数_Python可视化很简单,可是你会吗?python绘制饼图、极线图和气泡图,让我来教教你吧,一文教会!!!...

    matplotlib库作为Python数据化可视化的最经典和最常用库,掌握了它就相当于学会了Python的数据化可视化,今天呢,咱们就一起来聊聊关于Python如何去绘制饼图.极线图和气泡图吧 好啦, ...

  5. python agg函数_Python Pandas Series.agg()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas Series.agg()用 ...

  6. python乘法函数_Python中列表与元组的乘法操作示例

    本文实例讲述了Python中列表与元组的乘法操作.分享给大家供大家参考,具体如下: 直接上code吧,还可以这么玩儿 列表乘法: li=[1,] li=li*3 print(li) out: [1, ...

  7. python sorted下标_Python学习教程(Python学习路线):第七天-字符串和常用数据结构

    Python学习教程(Python学习路线):字符串和常用数据结构 使用字符串 第二次世界大战促使了现代电子计算机的诞生,当初的想法很简单,就是用计算机来计算导弹的弹道,因此在计算机刚刚诞生的那个年代 ...

  8. python len函数_Python 初学者必备的常用内置函数

    Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很常见,这里 ...

  9. python long函数_python函数

    一.函数的优点 使代码模块化 代码复用,减少冗余 保证了代码的一致性 python中的函数分为内置函数和自定义函数 内置函数: 如int(), str(), len(), range(), id(), ...

最新文章

  1. C++ with STL(一)
  2. JSP页面最终是编译为Servlet执行的
  3. 前端学习(924):client系列
  4. [dp]leetcode 746. Min Cost Climbing Stairs
  5. python伪装浏览器什么意思_python爬虫伪装浏览器出现问题求助
  6. 20135316王剑桥Linux内核学习笔记第三周
  7. Leetcode每日一题:34find-first-and-last-position-of-element-in-sorted-array(排序数组中查找某元素的两端位置)
  8. OO第二次课程总结分析
  9. 传统的6d位姿估计fangfa1_基于视觉的机器人抓取从物体定位、位姿估计到抓取位姿估计 | 公开课预告...
  10. 使用 GNU CC 的预编译头文件加快编译速度
  11. GaN制备Micro-led(二)——光子晶体倒装 Micro-LED 制备的关键工艺(纳米压印光刻、干法刻蚀、介质薄膜沉积、物理气相沉积)
  12. 需求分析岗的一般工作流程
  13. linux awk 排序,利用Shell中awk和sort命令合并同类数据后并依据某一列进行排序
  14. 10以内转大写汉字java_1.输入一个0-10之间的阿拉伯数字,将其转换成中文大写数...
  15. 基本触发器和钟控触发器
  16. 编译出现错误,想知道为什么错误
  17. 【Arduino】重生之Arduino 学僧(1)----Arduino简介
  18. gt,gte,lt,lte缩写代表的意思
  19. 如何在邮件中嵌入 加入QQ群的按钮
  20. Altium Designer初学者入门(stm32最小系统的电路原理图)

热门文章

  1. C#LeetCode刷题-字符串
  2. C#LeetCode刷题之#414-第三大的数(Third Maximum Number)
  3. 正则表达式与python re
  4. html代码范例_最佳HTML范例和HTML5范例
  5. Simulink步长
  6. Logistic Regression逻辑回归的损失函数与梯度下降训练
  7. Python - 遍历列表时删除元素的正确做法
  8. Apache Flink新场景——OLAP引擎
  9. icml和nips等各类重要会议论文收集
  10. ReportViewer教程(6)-将报表浏览器与报表联系