【发布时间】:2019-07-13 21:50:48
【问题描述】:
让我们有一个 Python 中的示例类 Foo:
class Foo:
bar = 'bar'
def access_bar(self):
return self.bar
例如,我可以在直接访问Foo().bar 时打印警告,但同时在调用Foo().access_bar()(从类中访问该属性)时不打印此警告吗?
我尝试实现__getattribute__ 方法,但没有成功区分这些情况。
我知道这是一个很奇怪的问题,但请不要像“你不应该需要这个”那样回答我。
【问题讨论】:
-
Foo().access_bar()与Foo.access_bar()不同 -
您似乎有提出问题的动机。如果您解释为什么需要这种区分(即使只是出于好奇!),这可能会有所帮助。
-
您真的想要 class 属性而不是实例属性 (
self.bar = 'bar')?您确定自己知道其中的区别吗?
标签: python python-3.7