【发布时间】:2012-10-11 12:35:30
【问题描述】:
我编写了以下包装类。我想定义 __setattr__ 以便它将所有属性重定向到包装类。但是,这会阻止我初始化包装类。有什么优雅的方法可以解决这个问题?
class Wrapper:
def __init__(self, value):
# How to use the default '__setattr__' inside '__init__'?
self.value = value
def __setattr__(self, name, value):
setattr(self.value, name, value)
【问题讨论】:
-
Wrapper包装了什么?为什么不继承object? -
@Tichodroma 它可以包装任何东西。我在 GUI 应用程序中使用它;当封闭的对象被修改时,包装器会通知侦听器。它不是从
object继承的,因为我只想使用 Python 3。
标签: python python-3.x setattr