> >> Line oriented network protocols are very common, and I often find > >> myself calling the socket makefile method so I can read complete > >> lines from a socket. I'm probably not the first one who's wished > >> that socket objects where more file-like. > >> > >> While I don't think we'd want to go as far as to turn them into a > >> stdio based file object, it might make sense to allow them to be > >> iterated over (and add a .readline() method, I guess). This would > >> necessitate adding some input buffering, which will complicate > >> things like the .recv() method, so I'm not sure it's that good an > >> idea, but it removes one gotchya for neophytes (and forgetful > >> veterans). Thoughts? > > > >Um, why doesn't the makefile() method do what you want? > > The short answer is that it does, but not very tidily - by turning the > socket object into a file object, I lose the original socket object > functionality (for example, shutdown()). You can just keep the socket around though. > At another level, the concept of a "file-like" object is a very common > python idiom - socket is the odd one out these days. > > It's really not a big deal - we could regularise the interface at the > cost of more implementation complexity. I'm not sure if I'd call that regularizing. It would by necessity become some kind of odd mixture. In any case, I find the file abstraction a bit arcane too. Maybe we should strive to replace all these with something better in Python 3.0, to be prototyped in the standard library starting with 2.4. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4