isinstance(.., file) for Python 3
Stefan Behnel
stefan_ml at behnel.de
Thu Nov 8 10:14:37 EST 2012
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
More information about the Python-list
mailing list