添加我们自己的魔法方法映射

Add our own mapping of magic methods

最近我在阅读 Python 中的魔术方法,这使得代码更容易阅读。我们可以定义自己的映射吗?如果是这样,是否有任何指示以及它会有多复杂?

例如,+ 总是映射到 __add__。我可以为 ? 定义一个映射,它会在我的 class 中调用 __is_valid__ 吗?

c = Car()
print(c?)  # invokes __is_valid__ of Car to get the result

您似乎在询问是否可以在 Python 中创建自己的语法,添加通过魔术方法实现的新符号。答案是不。唯一可用的运算符是已经存在的运算符(+* 等),并且每个运算符都有其相应的魔术方法。您无法添加新的。