python装饰器

Python工程师面试汇总:25条Python知识点,命中高达95%

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-26 10:34:09
1.到底什么是Python?你可以在回答中与其他技术进行对比 下面是一些关键点: Python是一种解释型语言。这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译。其他解释型语言还包括PHP和Ruby。 Python是动态类型语言,指的是你在声明变量时,不需要说明变量的类型。你可以直接编写类似x=111和x="I’m a string"这样的代码,程序不会报错。 Python非常适合面向对象的编程(OOP),因为它支持通过组合(composition)与继承(inheritance)的方式定义类(class)。 Python中没有访问说明符(access specifier,类似C++中的public和private),这么设计的依据是“大家都是成年人了”。 在Python语言中,函数是第一类对象(first-class objects)。这指的是它们可以被指定给变量,函数既能返回函数类型,也可以接受函数作为输入。类(class)也是第一类对象。 Python代码编写快,但是运行速度比编译语言通常要慢。好在Python允许加入基于C语言编写的扩展,因此我们能够优化代码,消除瓶颈,这点通常是可以实现的。 Numpy就是一个很好地例子,它的运行速度真的非常快,因为很多算术运算其实并不是通过Python实现的。 Python用途非常广泛——网络应用,自动化

python面试题

橙三吉。 提交于 2019-11-26 10:12:40
为什么学习Python 爱好 通过什么途径学习Python 首先看视频自学,然后看书自学,最后报班学。 谈谈Python和其他语言的区别 Python属于解释型语言,当程序运行时,是一行一行的解释并运行,调试程序简单,开发效率高。 特点: 语法简洁优美,功能强大,标准库与第三方库都非常强大。具有很强大的可移植性、可扩展性、可嵌入性。 缺点:运行速度慢 简述解释型和编译型编程语言 解释型:就是边解释边执行 编译型:编译后再执行 Python的解释器种类以及相关特点 CPython 当我们从Python官方网站下载并安装好Python 3.6后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。 CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。 IPython IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。 CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。 PyPy PyPy是另一个Python解释器,它的目标是执行速度

python带参数的装饰器,小程序

天大地大妈咪最大 提交于 2019-11-26 09:48:11
下面的python小程序,给出了一个带参数的装饰器的应用 import time def logger(flag): def show_time(f): def inner(x,y): start = time.time() f(x,y) end = time.time() print(end - start) if flag: with open('log.txt','a') as file1: file1.write("The run time of the last programme is %s\n" %end) print("logger is running....") return inner return show_time @logger(True) def Add(x,y): print(x + y) Add(1,2) Add(8,9)运行结果如下:38.70227813721e-05logger is running....173.60012054443e-05logger is running.... 来源: https://www.cnblogs.com/iceberg710815/p/11933195.html

python 装饰器

筅森魡賤 提交于 2019-11-26 09:21:28
#装饰器,就是装饰函数的意思#在不改变原来的调用方式、代码的情况下,给函数增加新功能# ben=holly#函数即变量# ben('holly')def timer(func): def add(): print('aaa') func() return add@timer#语法糖 holly=timer(holly)def holly(): print("I'm holly")holly() #统计每个函数的运行时间import time,random,requestsdef timer(func): def wappr(): starttime=time.time() func() endtime=time.time() print('这个函数的运行时间是%.2f'%(endtime-starttime)) return wappr@timerdef fun(): time.sleep(random.randint(1,10))@timerdef func2(): requests.get('http://www.baidu.com')fun()func2() 来源: https://www.cnblogs.com/jingw/p/11317303.html

python装饰器,小例子

吃可爱长大的小学妹 提交于 2019-11-26 07:48:42
python装饰器的作用就是在不想改变原函数代码的情况下,增加新的功能.主要应用了python闭包的概念,现在用1个小例子说明 import time def foo(): time.sleep(1) def bar(): time.sleep(2) def show_time(f): def inner(): start_time = time.time() f() end_time = time.time() print(end_time-start_time) return inner #show_time(f) is a decoration function foo = show_time(foo) bar = show_time(bar) foo() bar() 上面的代码定义了两个函数foo()和bar(). 通过装饰器函数show_time(f),在其内部定义了另一个闭包函数inner(),再通过foo=show_time(foo),bar=show_time(bar)语句将foo()和bar()函数同装饰器函数关联起来,从而实现了不改变foo()和bar()函数代码,增加打印程序执行时间的功能.程序的执行结果如下: 1.0011370182 2.00142788887 显然,程序在没有改变原函数的情况下,实现了调用原函数显示程序运行时间的功能.

第十三章:python基础面试80题

女生的网名这么多〃 提交于 2019-11-26 07:17:56
文章目录 1. 为什么学习Python 2. 通过什么途径学习的Python 3. Python和Java、PHP、C、C#、C++等其他语言的对比 4. 简述解释型和编译型编程语言 5. Python解释器种类以及特点 6. 位和字节的关系 7. b、B、KB、MB、GB 的关系 8. 请至少列举5个 PEP8 规范 9. 通过代码实现如下转换 10. 请编写一个函数实现将IP地址转换成一个整数 11. python递归的最大层数(次数) 12. 求结果 13. ascii、unicode、utf-8、gbk 区别 14. 字节码和机器码的区别 15. 三元运算规则以及应用场景 16. 列举 Python2和Python3的区别 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.

Python基础常见问题总结(一)

非 Y 不嫁゛ 提交于 2019-11-26 04:28:28
1 .__ foo 、foo_ 和 __foo__ 三者之间的区别是什么? __foo表示私有属性、_foo表示受保护的属性、__foo__表示Python自带的属性 2.请您简述Python编译的工作原理,PyCodeObject 和 PyFrameObject 对象的作用。 Python编译的工作原理:Python语言写的程序不需要编译成二进制代码,它可以直 接从源代码运行程序。当我们运行Python文件程序的时候, Python解释器把源代码转换成中间形式:字节码,然后再由Python虚 拟机来执行这些字节码。 PyCodeObject对象:pyc 字节码在Python虚拟机中对应的是PyCodeObject对象,虚拟机将字节封装成一个PyCodeObject对象再一条条执行字节码指令。 PyFrameObject对象:当发生函数调用时,创建新的帧,对应Python的实现就是PyFrameObject对象。 3.如何理解self、cls、和super? self是实例方法定义中的第一个参数,代表该方法的实例对象 cls是类方法中的第一个参数,代表当前类 super是指在Python面向对象的继承特征下中,若子类调用父类方法则需要super()实现。 4.如何区分@classmethod和@staticmethod? @classmethod是类装饰器

Python-基础-常用术语对照表

浪子不回头ぞ 提交于 2019-11-25 23:20:38
下面内容主要摘抄自 python 官网, https://docs.python.org/3.7/glossary.html#glossary ,部分内容有删减。 2to3 一个将 Python 2.x 代码转换为 Python 3.x 代码的工具,能够处理大部分通过解析源码并遍历解析树可检测到的不兼容问题。 2to3 包含在标准库中,模块名为 lib2to3;并提供一个独立入口点 Tools/scripts/2to3。参见 2to3 - 自动将 Python 2 代码转为 Python 3 代码。 因为官方将在2020年不再支持 Python 2.x, 在遇到没有 Python 2.X 版本 的code 的时候,可以尝试使用这个工具将代码转化成Python 的版本。 abstract base class -- 抽象基类 抽象基类简称 ABC,是对 duck-typing 的补充,它提供了一种定义接口的新方式,相比之下其他技巧例如 hasattr() 显得过于笨拙或有微妙错误(例如使用 魔术方法)。ABC 引入了虚拟子类,这种类并非继承自其他类,但却仍能被 isinstance() 和 issubclass() 所认可;详见 abc 模块文档。 Python 自带许多内置的 ABC 用于实现数据结构(在 collections.abc 模块中)、数字(在 numbers 模块中)