[Python-Dev] Re: PEP 8 addition: Preferred property style? (original) (raw)
Terry Reedy tjreedy at udel.edu
Thu Jan 22 20:46:52 EST 2004
- Previous message: [Python-Dev] PEP 8 addition: Preferred property style?
- Next message: [Python-Dev] Hotshot
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Gerrit Holl" <gerrit at nl.linux.org> wrote in message news:20040122200344.GA3185 at nl.linux.org...
Hello,
currently, PEP 8 does not have any advice about the preferred style in defining properties. There are only two places in the standard library where they are used (socket.py and xml/dom/minicompat.py), so that doesn't provide much information either. Personally, I don't like the _namespace cluttering caused by defining _get, _set and/or del. Since I saw someone[0] on c.l.py using it, I always use this style: def mtime(): doc = "Modification time" def get(self): return os.path.getmtime(str(self)) def set(self, t): return os.utime(str(self), (self.atime, t)) return get, set, None, doc mtime = property(*mtime()) I like it, because it's very readable for me, and doesn't clutter the namespace. Two questions about this style:
The 'cute' is a mental burden for the naive reader. For compactness and no extra name bindings, I might prefer
def mtime(): # temp binding to setter return os.utime(str(self), (self.atime, t)) #'return expr' is atypical
mtime = property( "Modification time", lambda: os.path.getmtime(str(self)), mtime)
But I like 'def _set():...', with 'mtime =...' followed either by 'del _set' or another 'def _set():...' even better.
Terry J. Reedy
- Previous message: [Python-Dev] PEP 8 addition: Preferred property style?
- Next message: [Python-Dev] Hotshot
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]