python - Python __ror__ 没有初始化类
问题描述
我经常使用 ipython shell,并决定让一些 tidies 包装函数更易于键入。目标是能够打字AnObject | dump
,而不是dump(AnObject)
. 这仅在 ipython shell 和 dev 中。为了便于打字。
到目前为止,我已经想出了这个:
class _dump:
def __ror__(_, obj):
print(obj)
dump = _dump()
d = {'test': 123}
d | dump
哪个输出{'test': 123}
一件小事让我很恼火..有没有办法在定义后不初始化类的情况下做到这一点?作为奖励,是否可以同时接受| dump
样式以及函数 ( | dump(opt=True)
)
解决方案
如果您愿意使用元类,那么是的,有可能:
class ror(type):
@classmethod
def __ror__(cls, obj):
print(obj)
class Foo(metaclass=ror):
pass
'a' | Foo
# a
推荐阅读
- sql - 使用单个更新语句将所有空值与oracle sql中相应列的最常见值进行归类
- amazon-web-services - 是否可以就地定义 Cloudformation 资源?
- iframe - 无法获取 iframe 视频时长
- swiftui - 如何在 SwiftUI 中将项目添加到自定义 NavigationBarItem
- python - 如何解决下面的 python 3.x pandas 错误?
- django - 如何在 Django 中动态组合 OR 查询过滤器以从 ManyToManyFields 中删除对象对?
- visual-studio - 使用 CMake 设置适用于所有目标的目标 VS_GLOBAL 属性
- ios - AKPlayer缓冲模式设置缓冲大小
- php - 无法在现有 PDF 中添加水印图像
- python - for循环没有遍历列表中的所有元素