"tomer filiba" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > instead of doing > if not s.getsockopt(SOL_SOCK, SOCK_REBINDADDR): > s.setsockopt(SOL_SOCK, SOCK_REBINDADDR, 1) > > you can just do > if not s.rebind_addr: > s.rebind_addr = True > > which is much easier (both to maintain and read). these property- > options also take care of platform dependent options (like the > linger struct, which is different between winsock and bsd sockets)
Very nice. Much more 'pythonic'. > i can't speak for Guido now, but at first, when i proposed this > options-via-properties mechanism, Guido was in favor. he agreed > setsockopt is a highly non-pythonic way of doing things. > > besides, the context is different. a path object is not a stream > object. they stand for different things. so you can't generalize > like that -- the decision must be made on a per-case basis I agreed with Guido's pronouncement in its context. I also don't see it as applying to f.position (unless he explicitly says so). The Python file object is supposed to be a fairly direct proxy for the OS'es file object. > another key issue to consider here is convenience. it's much > more convenient to use .position than .seek and tell. for example: So I also like this. > original_pos = f.position > try: > ... do something with f > except IOError: > f.position = original_pos > > seek and tell are much more cumbersome. they will remain there, > of course, if only for backwards compatibility. Tell and seek go back half a century to manipulations of serial media like magnetic tape;-) For random access disks, their meaning is somewhat virtual or metaphorical rather than actual. To me, its time to let go of them, as much as possible, and use a more modern API. Terry Jan Reedy _______________________________________________ Python-3000 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com
