Tiếp theo là phương pháp __init__
của lớp Local
từ thư viện werkzeug
:`đối tượng .__ setattr __ (self, ..., ...)` thay vì `setattr (self, ..., ...)`?
def __init__(self):
object.__setattr__(self, '__storage__', {})
object.__setattr__(self, '__ident_func__', get_ident)
Tôi không hiểu hai điều về mã này:
Tại sao họ viết
object.__setattr__(self, '__storage__', {})
thay vì chỉ đơn giản là
`setattr(self, '__storage__', {})`
Tại sao họ thậm chí sử dụng
__setattr__
nếu chỉ đơn giản là có thể viếtself.__storage__ = {}
Tôi sẽ chỉ thêm rằng mặc dù có vẻ khó xử trong nguồn, nó cung cấp một giao diện đẹp cho người dùng của lớp. –