30.创造“新语法”的黑科技

通常我们遍历一个元素为 5-10 的数组,会这么写

>>> for i in range(5,11):
...     print(i)
...
5
6
7
8
9
10

今天介绍一个黑科技方法,可以让这种写法更加直观,请谨慎使用。

>>> for i in 5|到|10:
...     print(i)
...
5
6
7
8
9

|到| 应该分为 || 这三个部分。

第一和第三的 | 是同个意思,它就是一个普通的运算符,通常我们使用 or 关键字来替代它,导致很多人对这个符号比较陌生。

这边是一个简单的例子,当两边 | 两边有一边为 True 就会返回 True

>>> if True | False:
...     print("ok")
...
ok
>>>
>>> if False | False:
...     print("ok")
...
>>>

基本上所有的运算符都可以通过魔法方法来重新定义运算符的逻辑,这个过程叫做运算符重载, | 也不例外。

控制 | 的魔法方法是 __or____xor__

讲完了第一个和第三个字符,现在说说第二个字符

实际上是一个类的实例,上面为了神秘,我没有事先给出完整代码

定义一个 Magic 的类,用于改变 range 的 | 方法

>>> class Magic(object):
...     def __init__(self, func):
...         self.func = func
...     def __or__(self, other):
...         return self.func(other)
...     def __ror__(self, other):
...         self.func = partial(self.func, other)
...         return self
...
>>>
>>> 到 = Magic(range)

总结一下,这三者如何起作用的?

展开阅读全文

投稿时间:2022-03-04  最后更新:2022-09-25

标签:遍历   数组   写法   直观   语法   符号   字符   实例   定义   方法   魔法   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2022 All Rights Reserved. Powered By Q578.com 闽ICP备11008920号-1
闽公网安备35020302032606号

Top