Skip to content

attr.s(frozen=True) breaks writeable properties #144

@exarkun

Description

@exarkun
(txkube) exarkun@baryon:~/Work/LeastAuthority/txkube$ cat brokenattrs.py
import attr

@attr.s(frozen=True)
class X(object):
    y = attr.ib()

    @property
    def z(self):
        return 3

    @z.setter
    def z(self, value):
        print("z=", value)

X(y=None).z = 10
(txkube) exarkun@baryon:~/Work/LeastAuthority/txkube$ python brokenattrs.py 
Traceback (most recent call last):
  File "brokenattrs.py", line 15, in <module>
    X(y=None).z = 10
  File "/home/exarkun/Environments/txkube/local/lib/python2.7/site-packages/attr/_make.py", line 201, in _frozen_setattrs
    raise FrozenInstanceError()
attr.exceptions.FrozenInstanceError
(txkube) exarkun@baryon:~/Work/LeastAuthority/txkube$ 

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions