Duncan Booth, 08.11.2012 14:58: > Ulrich Eckhardt wrote: >> If possible, I'm looking for a solution that works for Pythons 2 and 3, >> since I'm not fully through the conversion yet and have clients that >> might use the older snake for some time before shedding their skin. >> >> Suggestions? > > Why bother checking types at all? > > def foo(file_or_string): > try: > data = file_or_string.read() > except AttributeError: > data = file_or_string > ... use data ...
Or, a tiny bit more safely: try: read = file_or_string.read except AttributeError: data = file_or_string else: data = read() I'd rather go with one of the previous solutions, though. Stefan -- http://mail.python.org/mailman/listinfo/python-list