asilyator
Май 22, 2012 14:26:03
Может, я не привык еще к тройке, но ситуация, когда тип возврата зависит от типа аргументов мне кажется, мягко говоря, опасной граблями как в оппосте. Нельзя было бы добавить доп. параметр или сделать вообще другую функцию.
А вообще, если бы доках был указан тип возвращаемого результата (тегом типа type), все было бы гораздо проще.
А все грабли с юникодом решились возвращению к подходу как в яве, только еще жестче: есть строки (юникод), есть двоичные буферы (правда, readonly), и конвертирование между ними может быть только с явным указанием кодировки. :)
py.user.next
Май 23, 2012 03:05:27
asilyator
Может, я не привык еще к тройке, но ситуация, когда тип возврата зависит от типа аргументов мне кажется, мягко говоря, опасной граблями как в оппосте.
в регулярных выражениях так же устроено
>>> import re
>>> re.search(r'.', 'abc').group(0)
'a'
>>> re.search(br'.', b'abc').group(0)
b'a'
>>>
asilyator
Нельзя было бы добавить доп. параметр или сделать вообще другую функцию.
как в WinAPI, когда 300 функций копируют одно и то же ?
прочитай все методы для str со всеми их особенностями
язык должен быть компактным, чтобы его можно было выучить
asilyator
Май 23, 2012 03:29:18
Да, но такие тонкости забывают указывать в документации, а еще там почти никто не указывает тип параметров и результата. На выходе получаем WTF.
py.user.next
Май 23, 2012 08:25:07
asilyator
Да, но такие тонкости забывают указывать в документации, а еще там почти никто не указывает тип параметров и результата.
то, что этого нет в документации - это недочёт
http://docs.python.org/py3k/library/os.html#os.walkможно отправить им запрос на
bugs.python.orgдобавить “os.walk() реализована через os.listdir()”
там уже есть
“By default, errors from the listdir() call are ignored.”
но это не очень подчёркивает поведение при передаче байтового объекта
>>> t = os.walk(b'/tmp')
>>> list(t)
[(b'/tmp', [b'gpg-Vcf4u0', b'.X11-unix', ...
asilyator
Май 23, 2012 14:41:58
Еще лучше было бы, если бы указывали именно тип возвращаемого значения. Если структура данных - с типом элементов.
Андрей Светлов
Май 23, 2012 16:58:18
Как уже py.user.next заметил — создавайте баг, предлагайте патч.
asilyator
Май 23, 2012 17:12:48
Еще и патч предлагать? Баг репортить без уверенности, что его будет кто-то читать и если будет, то когда?
Андрей Светлов
Май 23, 2012 21:11:48
Укажите номер — я прочитаю. И закоммитить могу :)
asilyator
Май 23, 2012 21:23:18
Может, и создашь тогда? :)
py.user.next
Май 24, 2012 01:47:41
asilyator
Еще лучше было бы, если бы указывали именно тип возвращаемого значения.
а там нормально объясняется
для os.walk() понятно, что возвращается генератор
а типы строк в генераторе объясняются в описании os.listdir()
http://docs.python.org/py3k/library/os.html#os.listdirasilyator
Еще и патч предлагать? Баг репортить без уверенности, что его будет кто-то читать и если будет, то когда?
обычно это зависит от времени суток у них
документация там легко исправляется
перед описанием бага нужно посмотреть, не исправлен ли он
было:
http://docs.python.org/py3k/library/os.html#os.walkстало:
http://docs.python.org/dev/library/os.html#os.walk