Python面试知识点整理
文章平均质量分 74
面试之前,你需要掌握这些知识点。不会?那你可别说你是个pythoner~~
Trophy_D
just say yes
展开
-
目录
以下是该系列文章的目录,点击即可跳转:python文件打开模式选择(r?、a?还是w?)python中的__new__()方法python函数参数传递:传值还是传引用python中的元类(metaclass)python实例方法、类方法和静态方法python类变量和实例变量python自省python列表推导式、集合推导式和字典推导式python单下划线和双下划线pytho...原创 2018-09-04 13:17:56 · 769 阅读 · 0 评论 -
前言
编写目的网上关于python面试的文章很多,但是质量参差不齐,有很多是无脑抄袭的。更有甚者连内容的正确性都没检查就直接开始copy,在那种文章里很容易就可以发现代码甚至逻辑都有明显的错误。因此,我决定参考github上一位大神的文档,自己重新编写一系列内容更全、准确性更高、更易于理解的文章,专门介绍面试中与python相关的知识点,同时,这些知识点也是作为一个pythoner必须掌握的基础...原创 2018-08-07 16:04:42 · 491 阅读 · 0 评论 -
python装饰器
装饰器本质上是一个Python函数,它可以让其它函数在不作任何变动的情况下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景。比如:插入日志、性能测试、事务处理、缓存、权限校验等。有了装饰器我们就可以抽离出大量的与函数功能无关的雷同代码进行重用。...原创 2018-09-04 19:39:41 · 4388 阅读 · 1 评论 -
python网络编程
简介网络编程就是在程序中实现网络中两台计算机的通信。而用Python进行网络编程,就是在Python程序本身这个进程内,连接别的服务器进程的通信端口进行通信。初识SocketSocket(又称套接字)起源于Unix,是应用层与TCP/IP协议族通信的中间软件抽象层。复杂的TCP/IP协议族隐藏在了Socket接口内部,用户只需要简单地使用Socket接口来进行网络编程。应用程序通常...原创 2018-09-09 22:58:13 · 3198 阅读 · 0 评论 -
python垃圾回收机制(GC)
概述Python 垃圾回收机制(Garbage Collection)主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,使用“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题;使用“分代回收”(generation collection)以空间换时间的方法提高垃圾回收效率。引用计数(reference countin...原创 2018-08-13 16:39:11 · 3066 阅读 · 0 评论 -
python拷贝对象
先看个例子:import copy #导入copy模块a = [1, [1,2], 3 ] #原始对象b = a #赋值,传对象的引用c = copy.copy(a) #对象拷贝,浅拷贝d = copy.deepcopy(a) #对象拷贝,深拷贝a.append(4) #修改原始对象a,在尾部添加一个元素a[1]...原创 2018-08-14 13:05:56 · 3594 阅读 · 0 评论 -
python可变参数:*args 和 **kwargs
*args 和 **kwargs 主要用于函数定义。当我们不确定往一个函数中传入多少参数,或者希望以元组(tuple)或者列表(list)的形式传参数的时候,我们可以使用*args;当我们不知道往函数中传递多少个关键词参数或者想传入字典作为关键词参数的时候我们可以使用**kwargs(args、kwargs两个标识符是通俗的命名约定,可以但不建议修改)。*args开头的一个星号*把序列或者...原创 2018-09-04 15:47:07 · 1339 阅读 · 0 评论 -
python自省
…原创 2018-08-09 17:39:45 · 2247 阅读 · 0 评论 -
python列表推导式、集合推导式和字典推导式
列表推导式(List comprehensions)通过列表推导式我们能更方便简洁地创建列表。一般是通过可迭代的序列来生成新的列表字典推导式集合推导式原创 2018-08-11 23:28:24 · 2337 阅读 · 0 评论 -
python单下划线和双下划线
单下划线在类中,带有前导下划线的名称只是向其他程序员表明该属性或方法是私有的。仅此而已,并没有什么特别的功能。双下划线先看下python官方文档的解释(翻译成中文后): 类似”__spam”格式的任何标识符(至少有两个前导下划线,最多一个尾部下划线)在python底层都会被修改成”_classname__spam”,其中classname是当前的类名。这种修改(mangli...原创 2018-08-12 15:41:41 · 5961 阅读 · 0 评论 -
python迭代器和生成器
迭代器(Iterator)迭代的概念 在python中,通过for循环来逐个获取可迭代对象的每一项的过程就称为迭代(Iteration)。#简单的迭代:for i in [1,2,3]: print(i)#1#2#3可迭代对象 可以直接作用于for循环的对象统称为可迭代对象(Iterable)。 有以下几种:集合数据类型,如list、tuple、dict、s...原创 2018-08-12 21:16:52 · 1427 阅读 · 0 评论 -
python实例方法、类方法和静态方法
我们先定义一个简单的类,然后写出3种方法:class MyClass: def instance_method(self): print('调用了实例方法~') @classmethod def class_method(cls): print('调用了类方法~') @staticmethod def static_m...原创 2018-08-09 13:18:03 · 592 阅读 · 0 评论 -
python类变量和实例变量
类变量实例变量原创 2018-08-09 16:32:06 · 4539 阅读 · 0 评论 -
python文件打开模式选择(r?、a?还是w?)
r系列:r :以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。r+:打开一个文件用于读写。文件指针将会放在文件的开头。rb:以二进制格式打开一个文件用于只读。一般用于非文本文件如图片等。rb+ :以二进制格式打开一个文件用于读写。一般用于非文本文件如图片等。w系列:w :打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容...原创 2018-07-20 13:39:03 · 9208 阅读 · 0 评论 -
python中的__new__()方法
介绍new()方法是在新式类(新式类和经典类的区别)中的方法。object为所有新式类的基类,在object中,new()方法被定义为静态方法,并且至少需要传递一个参数cls,cls表示需要实例化的类。在创建一个类对象实例的过程中,new()方法作用在构造方法init()之前。执行object的new()函数后会返回实例对象(self),然后将self作为第一个参数传给该类的初始化方法in...原创 2018-08-05 17:33:31 · 4285 阅读 · 2 评论 -
python函数参数传递:传值还是传引用
先看两个例子:#例1:a = 1def fun(a): a = a+1 print(a) # 2fun(a)print(a) # 1 #例2:b = []def fun(b): b.append(1) print(b) # [1]fun(b)print(b) # [1] 你可能会觉得疑惑为什么两次print(a)输出结...原创 2018-08-07 17:30:51 · 5406 阅读 · 0 评论 -
python中的元类(metaclass)
关于元类,实际上很少会用到,但是了解一下也是有必要的,因为元类个很神奇的东西。python中的类在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立。但是,Python中的类也是一种对象。只要你使用关键字class,Python解释器在执行的时候就会创建一个对象。下列代码: class ObjectCreator(object): ...原创 2018-08-07 22:41:36 · 720 阅读 · 0 评论