在上两期推文中对>>的应用都有了比较详细的介绍,其实>>已经充当了Linux系统中的管道“|”的作用了。那么就接着“遇到你, Be Pythonic”系列,解决携带参数的>>的应用,更符合实际生产情况。
需求描述
假如需要实现一个随机生成三餐的食谱的需求,提供全部随机生成或自定义同时随机生成两种选项,尽量Pythonic。例如,这样调用即可:
需求分析
>> 的语法实现需要使用__rshift__和__rrshift__。可参考以往的推文:
往期精彩
遇到你, Be Pythonic!
遇到你, Be Pythonic!(中)
自定义一个三餐的列表作为随机选取的对象
如果是全部随机生成,则无需传递参数,进行4和5的步骤
breakfast的结果传递给lunch,在breakfast的结果基础插入lunch
lunch的结果传递给dinner,在lunch的结果基础插入dinner
如果是自定义同时随机生成,则需要一个函数进记录参数,然后重复45步骤
实现>>管道语法
语法例子建议参考前两期推文
菜单候取对象
菜单随机实现
整体控制及管道实现
随机生成效果
自定义菜单生成效果
携带参数的实现
原理: 匿名函数的*args和**kwargs保存了需要携带的参数。
其他
其他语法,未提到的,欢迎留言
Python全面学习资源
领取专属 10元无门槛券
私享最新 技术干货