每日进步一点点:__or__与__ror__等魔法函数的学习
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# DevVersion: Python3.6.8
# Date: 2021-11-16 22:39
# PyCharm|test
from functools import partial
# 功能实现
class Change:
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
到 = Change(range)
for i in 2 | 到 | 10:
print(i)
# TODO 知识点
"""
|到| 代表三部分,左边的"|",中间的"到", 右边的"|"
"""
# 魔法函数 __or__ 定义实例的右侧遇到|时的具体行为
# 魔法函数 __ror__ 定义当实例左侧遇到|时的具体行为
# 魔法函数 __add__ 定义实例的右侧遇到+时的具体行为
# 魔法函数 __radd__ 定义当实例左侧遇到+时的具体行为
# 魔法函数 __xor__ 定义实例的右侧遇到^时的具体行为
# 魔法函数 __rxor__ 定义当实例左侧遇到^时的具体行为
# 魔法函数 __mul__ 定义实例的右侧遇到*时的具体行为
# 魔法函数 __rmul__ 定义当实例左侧遇到*时的具体行为
class Test:
def __init__(self, num):
self.num = num
def __or__(self, other):
print(f"我右边有一个东西,它是:{other}")
def __ror__(self, other):
print(f"我左边有一个东西,它是:{other}")
x = Test(100)
x | 18000 # 我右边有一个东西,它是:22
15000 | x # 我左边有一个东西,它是:33
# 同时,这个Change类,你甚至可以直接当做装饰器来使用。任何能够接收两个参数的函数,都能使用这个装饰器。
@Change
def 加(a,b):
return a+b
print(2|加|3) # 5
人生苦短,我用python!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具