Форум сайта python.su
Доброго всем времени суток. Учусь программировать на питоне, столкнулся со странной ситуацией.
Насколько я знаю, файлы в питоне открываются функцией open и выглядит это примерно так:
f = open(fname, “r”) # Где fname - строковая константа с именем файла
Вроде все просто и понятно, но в одной из моих программ перестало вдруг работать. Начало выдавать ошибку о несовместимости типов, мол в аргументах функции должен быть Integer. Долго искал в этой нехитрой строчке ошибку, естественно ничего не нашел, поэтому достал с полки бубен и начал прыгать вокруг компютера. В итоге вылечилось заменой строки
from os import *
на
import os
и редактированием соответствующих функций. Собственно говоря вопрос - а чего я делал не так, чем интерпретатору не понравилось from os import *?
Офлайн
Murr_vkКак пишет автор языка в топике “What are the ”best practices“ for using import in a module?”:
Собственно говоря вопрос - а чего я делал не так, чем интерпретатору не понравилось from os import *?
Офлайн
Именно.
os.open (есть и такая) перекрыла __builtins__.open после
from os import *
а у нее сигнатура
open(filename, flag ) -> fd
Вот и нестыковка
Офлайн
Ясно, спасибо. Впредь буду руководствоваться советами Ван Россума :)
Офлайн