让每一名学员高薪就业
返回列表 发新帖

Python自动化测试常见面试题(五)

[复制链接]

135

主题

289

帖子

2658

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2658

版主

发表于 2019-9-11 15:50:17  | 显示全部楼层 | 阅读模式
一、怎么理解装饰器,用过或者写过什么装饰器吗?
1.1、概述:
装饰器本质上是一个 Python 函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。

1.2、详细描述:
  • import logging
  • # 定义装饰器,接收旧函数
  • def decorator(oldfunc):
  •     # 定义新函数,加强原函数
  •     def new_func(*args, **kwargs):
  •         # ...加强代码写这里,记录日志信息....
  •         logging.error("记录日志信息")
  •         ret = oldfunc(*args, **kwargs)
  •         return ret
  •     # 返回新函数
  •     return new_func
  • # 通过语法糖使用装饰器
  • @decorator
  • def square(x):
  •     # 获取 两个数的平方
  •     return x**2
  • # 执行
  • print(square(5))


1.3、应用场景:
日志记录,统计代码执行时间,权限验证

二、迭代器和生成器的区别
2.1、概述
生成器是特殊的迭代器,它更加优雅.生成器中的元素不是直接生成好,而是每使用next()方法获取下一个元素的时候才创建,从而大大节省内存空间。迭代器和生成器的区别

2.2、详细描述:
  • 迭代器是一个更加抽象的概念,任何对象,如果它的类有next方法和iter方法返回自身。对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是Python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个StopIterration的异常。
  • 生成器(Generator)是创建迭代器的简单而强大的工具。它有列表生成器和函数生成器.函数生成器写起来就像是正规的函数,只是在返回数据的时候需要使用yield语句返回。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)

2.3、应用场景:
  • # 列表生成器,其实就是列表推导式的[]写成()
  • g = (i for i in range(10))
  • print(next(g))
  • print(next(g))
  • print(next(g))
  • print(next(g))
  • # 通过 函数式生成器 获取 1-10 数字的平方
  • def sqrt():
  •     num = 1
  •     while num <= 10:
  •         # 返回平方
  •         yield num**2
  •         num += 1
  •         # 调用函数返回生成器
  •         g = sqrt()
  •         print(next(g))
  •         print(next(g))
  •         print(next(g))
  •         print(next(g))



回复

使用道具 举报

0

主题

6

帖子

21

积分

菜鸟

Rank: 1

积分
21
发表于 2019-9-11 15:53:15  | 显示全部楼层
我要把这个帖子一直往上顶!
回复 支持 反对

使用道具 举报

0

主题

9

帖子

2

积分

菜鸟

Rank: 1

积分
2
发表于 2019-9-11 15:54:45  | 显示全部楼层
我逐字逐句地看完这个帖子
回复 支持 反对

使用道具 举报

0

主题

4

帖子

10

积分

菜鸟

Rank: 1

积分
10
发表于 2019-9-11 16:01:07  | 显示全部楼层
我想要源码的纪念品
回复 支持 反对

使用道具 举报

0

主题

5

帖子

5

积分

菜鸟

Rank: 1

积分
5
发表于 2019-9-11 16:01:52  | 显示全部楼层
大家都来撩源妹儿!
回复 支持 反对

使用道具 举报

0

主题

9

帖子

5

积分

菜鸟

Rank: 1

积分
5
发表于 2019-9-11 16:02:06  | 显示全部楼层
老师们都好严格
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

最新活动

联系我们

Java培训  |   PHP培训  |   UI培训  |   H5培训  |   Python培训  |   大数据培训  |   如何报名  |   视频下载
快速回复 返回顶部 返回列表