【发布时间】:2010-11-10 15:06:34
【问题描述】:
我知道你可以在 Ruby 中做到这一点,但是如何在 Python 中做到呢?
所以基本上你可以对不存在的方法调用使用正则表达式,并创建“语法糖”。
【问题讨论】:
-
@ameer:感谢您的发现。投票以重复结束。
我知道你可以在 Ruby 中做到这一点,但是如何在 Python 中做到呢?
所以基本上你可以对不存在的方法调用使用正则表达式,并创建“语法糖”。
【问题讨论】:
但这仍然不会使s./.*/ 的语法有效,如果这是您的想法的话。 Python 的语法没有 Ruby 的那么灵活。
【讨论】:
您可以覆盖对象上的__getattribute__ 以处理对不存在的属性的请求。这仅适用于新型类。如果你有老式的类,你可以使用delnans answer。
【讨论】:
__getattribute__ 在 all 属性查找中被调用。 delnan 的回答对新式和旧式课程都是正确的。
__getattr__ 被称为缺少属性/方法(如问题所问)而 __getattribute__ 是定义时使用总是。