Skip to content

Descriptor example doesn't handle multiple instances #49

@NYKevin

Description

@NYKevin

If the user instantiates multiple Distance objects, the descriptors will interfere with each other.

There are two (and-a-half) ways to fix this:

  1. Attach a weakref.WeakKeyDictionary to instances of Meter. Use instance as the key and value as the value. This has the disadvantage that Distance must be hashable and probably should not override __eq__().
  2. Place the information in an attribute of the Distance objects. This has the disadvantage of requiring cooperation between the Distance class and the Meter class. This requirement can be eased with the use of a metaclass, but never truly eliminated.
  3. (variation of 2) Turn Distance.meter into a @property (or raw attribute) and delete the Meter class entirely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions