python面试相关题

python装饰器:
装饰器是在不改变源代码,和不改变源函数的调用方式的前提下,给函数增加功能;
python内置callable() 函数用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。
对于函数、方法、lambda 函式、 类以及实现了__call__ 方法的类实例, 它都返回 True。
创建一个闭包的三个条件:
必须有内嵌函数
内嵌函数必须要引用外部函数中的变量
外部函数返回值必须是内嵌函数
python装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器的返回值也是一个函数对象(函数的指针)。装饰器函数的外部函数传入我要装饰的函数名字,返回经过修饰后函数的名字;内层函数(闭包)负责修饰被修饰函数。从上面这段描述中我们需要记住装饰器的几点属性,以便后面能更好的理解:
    实质: 是一个函数
    参数:是你要装饰的函数名(并非函数调用)
    返回:是装饰完的函数名(也非函数调用)
    作用:为已经存在的对象添加额外的功能
    特点:不需要对对象做任何的代码上的变动
python装饰器有很多经典的应用场景,比如:插入日志、性能测试、事务处理、权限校验等。装饰器是解决这类问题的绝佳设计。并且从引入中的列子中我们也可以归纳出:装饰器最大的作用就是对于我们已经写好的程序,我们可以抽离出一些雷同的代码组建多个特定功能的装饰器,这样我们就可以针对不同的需求去使用特定的装饰器,这时因为源码去除了大量泛化的内容而使得源码具有更加清晰的逻辑

python的类:
以下函数的方式来访问属性:
getattr(obj, name[, default]) : 访问对象的属性。
hasattr(obj,name) : 检查是否存在一个属性。
setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。
delattr(obj, name) : 删除属性。
先在本类中查找调用的方法,找不到才去基类中找
如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方
单下划线、双下划线、头尾双下划线说明:
_foo_: 定义的是特殊方法,一般是系统定义名字 ,类似 _init_() 之类的。
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。*

python解释器:
有Cpython\JPython\Pypi等
最常用的就是Cpython,由C语言编写的python解析器,
python源码解析为字节码(pyc),再把字节码运行在PVM(python虚拟机)。pyc作为中间码可以加快下次运行的速度但是顶层函数不会生成pyc文件,而且作为商业发布则提高了安全性。
pyo是移除了断言的pyc文件
python执行过程:
在这里插入图片描述

模块在每次导入前总会检查其字节码文件的修改时间是否与自身的一致。若是则直接从该字节码文件读取内容,否则源模块重新导入,并在最后生成同名文件覆盖当前已有的字节码,从而完成内容的更新(详见import.py)。
只有文件导入的情况下字节码才保存,并不是对顶层文件。

python第三方库:
Python语言的库中,分为Python标准库和Python的第三方库
标准库就是安装python后自带的,第三方库就是需要自己安装但是底层是python写的库
我常用的标准库有:
os\sys\re\random\time\datetime\math
我比较常用的第三方库有:pandas\robot\pandas\selenium\request\django

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值