[Python-de] Python3 und "file"-Objekte

Bernd Nawothnig Bernd.Nawothnig at t-online.de
Sa Mär 2 12:30:37 CET 2013


On 2013-02-22, Christian Heimes wrote:
> Am 22.02.2013 15:01, schrieb Olе Streicher:
>> Hallo,
>> 
>> ich möchte meinen Code gerne Python3-fähig machen. Da findet sich eine
>> Stelle
>> 
>> def load(source):
>>     if isinstance(source, file):
>>         source = source.read()
>>     # ...
>> 
>> wie kann ich das so umschreiben, dass es in Python2 und Python3
>> funktioniert?
>
> Mach keinen Typecheck sondern prüfe auf das Interface:
>
> if hasattr(source, "read"):
>     ...

Was natürlich keineswegs dasselbe ist. Tausende von Klassen können
eine Methode read haben, ohne dabei auch nur im entferntesten vom Typ
file zu sein.





Bernd


Mehr Informationen über die Mailingliste python-de