Python高级语法示例

1、示例一

需求:写一个装饰器,对函数的部分或者全部参数做类型检查。


使用inspect库实现函数参数的类型检查(对类的变量进行类型检查使用描述器):


2、示例二

需求:自己实现partial函数。

3、示例三

需求:写一个函数,判断两个字典是否相等,字典的value可能为数字、字符串、元组、列表、集合和字典。如果value为列表和字典,需要判断其中每个元素是否相等。

4、示例四

需求:模拟一个数据源不断产生数值,求一段时间内,最大的K个元素。
生成数据源:

datetime库的用法:

(1)求Top K方法一:数据先逐个加入列表,再在列表中排序

(2)求Top K方法二:有序插入列表

(3)求Top K方法三:大顶堆
大顶堆的实现:
add()和父节点比较大小,如果比父节点大,则交换;
pop()和两个子节点比较大小,如果比子节点小,则和较大的子节点交换。

调用大顶堆的Top K的实现:

5、示例五

需求:自学标准库re。
re是一个在Python中使用正则表达式的标准库。

6、示例六

需求:实现os.walk方法。
os.scandir函数:

深度优先遍历非递归方式实现os.walk方法:

深度优先遍历递归方式实现os.walk方法:

广度优先遍历非递归方式实现os.walk方法:

os.walk方法的使用:

7、示例七

需求:实现一个优先队列,由用户指定比较函数。
namedtuple模块的用法:

类比堆的方式实现优先队列:

8、示例八

需求:实现tail -f的功能。

9、示例九

需求:实现tail命令,包括-n和-f选项,可以使用argparse实现命令行参数解析。
在这里插入图片描述

10、示例十

需求:学习单例设计模式,并使用装饰器实现单例类。

11、示例十一

需求:不使用内置数据结构,实现栈、队列和列表。
实现栈方式一:

实现栈方式二:

12、 示例十二

需求:实现staticmethod装饰器。

13、示例十三

需求:假设已经存在函数get_permissions可以获取当前用户的权限列表,设计一个权限管理类,既可以作为装饰器,对一个函数授权,也可以作为上下文管理,对一段代码授权。例如:

permissions = get_permissions()
if 'admin' in permissions:
	## do somethings
else:
	raise Exception('Permissions denied')

14、示例十四

需求:实现contextlib.contextmanager装饰器。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页