История изменений
Исправление proud_anon, (текущая версия) :
Получается, в file можно передавать не только класс str и его подклассы.
Ну ты же сам захотел так сделать: если передавать str или bytes, то открывать его, а в любом другом случае считать, что это файл.
А я бы сделал просто глобальный кэш открытых файлов и собственную версию write, которая бы принимала имя файла в качестве str или bytes. Она бы смотрела, есть ли этот файл в кэше, и если нет, открывала бы его, а если есть, записывала бы в уже открытый.
Исходная версия proud_anon, :
Получается, в file можно передавать не только класс str и его подклассы.
Ну ты же сам захотел так сделать: если передавать str или bytes, то открывать его, а в любом другом случае считать, что это файл.
А я бы сделал просто глобальный кэш открытых файлов и собственную версию write, которая бы принимала имя файла в качестве str или bytes. Она бы смотрела, есть ли этот файл в кэше, и если нет, открывала бы его, а если есть, записывала бы в же открытый.