码迷,mamicode.com
首页 > 编程语言 > 详细

源码时代软件测试干货分享|Python自动化测试常见面试题,学会不怕找不到好工作!

时间:2019-09-12 10:09:56      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:log   记录   一个   ati   没有   简单   日志信息   调用   代码执行   

怎么理解装饰器,用过或者写过什么装饰器吗?

1.1.概述:
装饰器本质上是一个 Python 函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。

1.2.详细描述:

1.import?logging??8.????????ret?=?oldfunc(*args,?**kwargs)??
9.????????return?ret??
10.??
11.?????返回新函数??
12.????return?new_func??
13.??
14.??
15.#?通过语法糖使用装饰器??
16.@decorator??
br/>2.#?定义装饰器,接收旧函数??
3.def?decorator(oldfunc):??
4.?????定义新函数,加强原函数??
5.????def?new_func(*args,?**kwargs):??
6.????????加强代码写这里,记录日志信息....??
7.????????logging.error("记录日志信息")??
8.????????ret?=?oldfunc(*args,?**kwargs)??
9.????????return?ret??
10.??
11.?????返回新函数??
12.????return?new_func??
13.??
14.??
15.#?通过语法糖使用装饰器??
16.@decorator??
17.def?square(x):??
18.?????获取?两个数的平方??
19.????return?x**2??
20.??
21.#?执行??
22.print(square(5))??

1.3.应用场景:
日志记录,统计代码执行时间,权限验证
2.迭代器和生成器的区别
2.1.概述:
生成器是特殊的迭代器,它更加优雅.生成器中的元素不是直接生成好,而是每使用next()方法获取下一个元素的时候才创建,从而大大节省内存空间。迭代器和生成器的区别
2.2.详细描述:
1.迭代器是一个更加抽象的概念,任何对象,如果它的类有next方法和iter方法返回自身。对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是Python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个StopIterration的异常。
2.生成器(Generator)是创建迭代器的简单而强大的工具。它有列表生成器和函数生成器.函数生成器写起来就像是正规的函数,只是在返回数据的时候需要使用yield语句返回。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)
2.3.应用场景:

1.#?列表生成器,其实就是列表推导式的[]写成()??
2.g?=?(i?for?i?in?range(10))??
3.print(next(g))??
4.print(next(g))??
5.print(next(g))??
6.print(next(g))??
7.??
8.??
9.#?通过?函数式生成器?获取?1-10?数字的平方??
10.def?sqrt():??
11.????num?=?1??
12.????while?num?<=?10:??
13.????????返回平方??
14.????????yield?num**2??
15.????????num?+=?1??
16.??
17.????????调用函数返回生成器??
18.????????g?=?sqrt()??
19.????????print(next(g))??
20.????????print(next(g))??
21.????????print(next(g))??
22.????????print(next(g))??

(本文由源码时代技术老师原创撰写,转载请注明出处)

源码时代软件测试干货分享|Python自动化测试常见面试题,学会不怕找不到好工作!

标签:log   记录   一个   ati   没有   简单   日志信息   调用   代码执行   

原文地址:https://blog.51cto.com/14497209/2437517

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!