python装饰器

python基础

孤者浪人 提交于 2020-02-26 12:46:33
Python面试重点(基础篇) 注意:只有必答题部分计算分值,补充题不计算分值。 第一部分 必答题(每题2分) 简述列举了解的编程语言及语言间的区别? python 列举Python2和Python3的区别? python2除法时返回的是整数,python3除法时返回的是小数 python2整形,长整型,python3全是整形 python2中的input获取的就是数据本身,python3中的input获取字符串 看代码写结果 v1 = 1 or 2v2 = 3 and 7 or 9 and 0 v1=1 v2=7 比较以下值有什么不同? v1 = [1,2,3]v2 = [(1),(2),(3)]v3 = [(1,),(2,),(3,)] 列表 列表里为集合 列表里元素为元祖 用一行代码实现数值交换。 a = 1b = 2 b=a Python中单引号、双引号、三引号的区别? 单引号表示的字符串里可包含双引号,当然不能包含单引号 双引号表示的字符串里可以包含单引号,字符串都只能有一行 三个引号能包含多行字符串,同时常常出现在函数的声明的下一行,来注释函数的功能 is和==的区别? is判断是否为同一内存地址,==赋值 python里如何实现tuple和list的转化? print(list(tuple)) 如何实现字符串 name='老男孩' 的反转? name[::-1]

python面试题

…衆ロ難τιáo~ 提交于 2020-02-26 12:45:07
Python面试重点(基础篇) 注意:只有必答题部分计算分值,补充题不计算分值。 第一部分 必答题(每题2分) 简述列举了解的编程语言及语言间的区别? 编译型和解释型 编译型:c,java 特点是只一次编译 执行效率高,开发效率慢 解释型:python 多次编译,一行两行就可以编译一次 执行效率低,开发效率高 列举Python2和Python3的区别? py2没中文 py2中print加引号 py3中print加括号 py2中整数相除没有浮点数 如果小数相除他会保一位小数 py3整数相除也保留浮点数 py2xrange和py3的range一样是个生成器 py2的range是个列表, py3没xrange py2中二进制不用加前缀0b py3中必须加前缀 py2中<>是不等于,py3没了 看代码写结果 v1 = 1 or 2 1v2 = 3 and 7 or 9 and 0 3 比较以下值有什么不同? v1 = [1,2,3] 数字v2 = [(1),(2),(3)] 数字v3 = [(1,),(2,),(3,)] 元组 用一行代码实现数值交换。 a = 1 a,b=b,ab = 2 Python中单引号、双引号、三引号的区别? 单双都是表示字符串 三是注释 is和==的区别? is是内存和内容都要一样 ==是内容一样 python里如何实现tuple和list的转化? set()

python基础

自闭症网瘾萝莉.ら 提交于 2020-02-26 11:58:33
1:简述列举了解的编程语言及语言间的区别? 编程语言实质上分为:解释型和编译型两种,两种语言实质上是执行机制的不同 编译型语言是指将代码一次性编译生成可执行文件,如果代码出现错误,就需要从头开始编译,缺点是开发效率低,代表是c语言 解释型语言是指将代码交给解释器,由解释器逐行翻译成代码,并且执行,优点是开发效率高,缺点是运行速度慢,需要依赖解释器,代表是python 2:列举python2 和python3的区别? 1、print:在python2中,print被视为一个语句而不是一个函数,python3中,print()被视为一个函数 2、整数的除法:在python2中,键入的任何不带小数的数字,将被视为整数的编程类型。比如5/2=2,解决方法:5.0/2.0=2.5 在python3中,整数除法变得更直观 5/2=2.5 3、Unicode:Python 2 默认使用 ASCII 字母表;Python 3 默认使用 Unicode 4:long整数类型被Python2废弃,统一使用int 5:xrange和range py2:xrange     range py3:range 统一使用range,Python3中range的机制也进行修改并提高了大数据集生成效率 6:包中的__init__.py Python2: 必须要有 Pyhon3: 有没有无所谓 7:新式类

Python面试重点(基础篇)

こ雲淡風輕ζ 提交于 2020-02-26 11:52:46
第一部分 必答题 1,简述列举了解的编程语言及语言间的区别? Python 解释型语言,代码简洁,易懂 C语言 编译型语言,底层语言 c++ 编译型语言,在C语言基础上加了面向对象 Java 混合型语言,可拓展性高 Golang 编译型语言,强类型,代码规范,高并发 语言特点: 灵活简洁,语言优美 可读性强, 语言类型: 解释型:逐行转化,运行效率低,性能差,开发效率高。兼容性好,跨平台 编译型 :一次性编译成二进制文件,执行效率高,兼容性差, 动态语言:不用声明变量的数据类型(脚本类语言) 静态语言:需要声明变量的数据类型 第三方库:python定位是任其发展,开源库很多,应用领域广 2,列举Python2和Python3的区别? python2只更新支持到2020年 print:2不加括号,3加括号 input:2中用户输入解析为int类型,raw_input为字符串类型,3直接是字符串类型 range:2是列表,xrange是可迭代对象;3是可迭代对象 继承关系:2是新式类+经典类;3是新式类 数字表示:2,int和long(长整形,超出2**63-1,数字末尾有一个L);3所有整型都是int 3,看代码写结果: v1 = 1 or 2 # v1 = 1 v2 = 3 and 3 or 9 and 0 # v2 = 7 4,以下的值有什么不同? v1 = [1,2,3] v2

python开发学习

二次信任 提交于 2020-02-25 17:28:04
Python开发学习 一、Linux基础   Linux安装,Linux基本命令,Linux文件系统,Linux权限管理,Linux用户管理,Linux编辑器vim,shell脚本,Linux防火墙,Linux-LNMP架构原理搭建。    二、Python基础   认识python,开发工具介绍及使用   基础语法:print语句,变量,注释,输入输出,运算符,数据类型,列表及其操作,字典及其操作,元组及其操作,集合及其操作,if判断语句,while循环,for循环,局部变量和全局变量,字符串及其操作,编码,格式化,深浅拷贝。   高级语法:关键字参数,位置参数,可变参数,函数返回值,匿名函数,递归函数,参数引用,常用内置函数,排序,筛选,映射,二分法。   类和对象:类的定义,对象的创建,__new__,__init__,__str__,__del__,self的作用,对象访问权限控制,封装,继承,多态,类属性,实例属性,嵌套,调用,特殊成员,单例设计模式,工程设计模式。   文件操作:文件的打开与关闭,文件的读写操作,文件指针读取和定位。案例:1.文件批量复制。2.文件批量改名。   模块和包:模块介绍、包介绍,import导入,from...import...导入,import...as...导入取别名,__all__,循环导入问题,安装第三方库,发布模块到pip

day11 python之函数装饰器

送分小仙女□ 提交于 2020-02-24 16:07:38
一,什么是装饰器? 装饰器本质上就是一个python函数,他可以让其他函数在 不需要做任何代码变动的前提下,增加额外的功能 ,装饰器的 返回值也是一个函数对象 。 装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等场景。 二,装饰器的形成过程。 现在我有一个需求,我想让你测试这个函数的执行时间,在不改变这个函数代码的情况下: import time def func1(): print('in func1') def timer(func): start = time.time() func() print(time.time() - start) timer(func1) 上面的代码输出了func1()函数的运行时间,但是我们计算func1()函数的运行时间时,需要调用的是timer(func)函数 有没有办法直接调用func1()函数就能计算func1()函数运行时间呢? 如果让 func1 = timer 呢? 可是timer()函数需要一个函数参数,而我们的 func1 是不需要参数的,显然不行 那该怎么实现呢? 换个思路, timer不能赋值给func1,但是我们可以给timer指定一个函数返回值,将他赋值给func1 那么执行 func1() 时就相当于执行 这个用来赋值的函数.而这个函数在timer()函数内,可以调用timer()函数的参数func

python装饰器

老子叫甜甜 提交于 2020-02-24 16:05:58
原则: 依赖倒置: 开放封闭:对扩展是开发的、对修改是封闭的 装饰器作用: 不想修改函数的调用方式,但是想在原来的函数前后添加功能 装饰器固定模式: import time def func(): time.sleep(0.01) print('hello') def timmer(f): # f也是一个变量 是一个闭包 # f=>func def inner(): start = time.time() f() print(time.time()-start) return inner func = timmer(func) # fun = inner func() # 执行 inner,内存没有消失f = func() 还有带返回值的、带参数的。 语法糖: import time def timmer(f): def inner(): start = time.time() f() print(time.time()-start) return inner @timmer def func(): time.sleep(0.01) print('hello') # func = timmer(func) func() 有语法糖 @timmer()就可以把func = timmer(func)去掉 背: 首先定义一函数 中间再加一函数 然后要加返回值 修饰函数中间套 语法糖呀真好吃

python基础-装饰器

十年热恋 提交于 2020-02-24 15:50:20
    1、什么是装饰器         装饰指的是为被装饰对象添加新的功能         器指的是工具       装饰器本身可以任意可调用的对象,被装饰的对象也可以是任意可调用的对象     2、为什么要装饰器         扩展新功能:写一个函数用来为另外一个函数添加新功能,需要遵循开放封闭原则(对修改是封闭的,对扩展是开放的)         1、不修改被装饰对象的源代码         2、不修改装饰对象的调用方式     3、怎么用       例如:统计函数的时间                 1.创建新功能(计算时间)的函数              满足了第一个要求,不改变源代码。但调用方式改了       2.创建装饰器,将新函数设计成闭包函数,被调用函数以参数形式传入装饰器              3.变量接受装饰器的返回值                     虽然满足了2个要求,但只适应于 无参的被装饰函数.       若被装饰函数为              按照原来设计,则出错。闭包函数wrapper无参数              所以为闭包函数添加参数*args,**kwargs              最后填好返回值            4.语法糖       装饰器的语法糖:在被装饰对象的正上方单独一行写上@装饰器名字、    

python 装饰器

冷暖自知 提交于 2020-02-24 15:48:45
一.开闭原则: 对功能的扩展开放 对代码的修改是封闭 二.装饰器: 1.通用装饰器语法: def wrapper(fn): def inner(*args, **kwargs): # 聚合 在目标函数之前 ret = fn(*arg, **kwargs) # 打散 在目标函数之后 return ret return inner @wrapper def func(): pass func() 2. 同一个函数被多个装饰器装饰 @wrapper1 @wrapper2 @wrapper3 def func(): pass 1 2 3 func 3 2 1 3. 带参数的装饰器 def wrapper_out(参数): def wrapper(fn): def inner(*args, **kwargs): # 聚合 在目标函数之前 ret = fn(*arg, **kwargs) # 打散 在目标函数之后 return ret return inner return wrapper @wrapper_out(实参) # 执行的时候. 先执行函数的调用然后使用返回值和前面的@组合成装饰器语法糖 def func(): pass 装饰器应用 1 flag = False # 没登录 2 3 def login(): 4 global flag 5 username = input(

Python面试题之Python面试题汇总

自闭症网瘾萝莉.ら 提交于 2020-02-24 09:00:44
在这篇文章中: Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 Python的优势: 4:简述解释型和编译型编程语言 5:Python的解释器种类以及相关特点? 6:位和字节的关系 7:b、B、KB、MB、GB的关系 8:PE8规范 9:通过代码实现如下转换(进制之间转换) 10:请编写一个函数实现将IP地址转换成一个整数 11、python递归的最大层数?998 12:求结果(and or or) 运算符 13 :ascii、unicode、utf-8、gbk 区别 14:字节码和机器码的区别 15:三元运算写法和应用场景? 16:Python3和Python2的区别? 17:用一行代码实现数值交换 18:Python3和Python2中int和long区别 19:xrange和range的区别 20:文件操作时:xreadlines和readlines的区别? 21: 列列举布尔值为False的常见值? 22. 字符串、列表、元组、字典每个常用的5个方法? 23、 lambda表达式格式以及应用场景? 24. pass的作用 25. *arg和**kwarg作用 26. is和==的区别 27:谈谈Python的深浅拷贝?以及实现方法和应用场景。 28. Python垃圾回收机制? 29.