Аффтар, выпий йаду
Jun. 5th, 2020 11:52 pmЧитнул тут питоновский скрипт одного из наших амерских питонистов, причем не самого худшего.
Я не буду тут про отсутствие def main(), стандартного if __name__ == '__main__' и посланный лесом PEP 8. Это крючкотворство.
Но зачем при импорте pathlib вызывать os.getcwd()? Это все равно, что в плюсовом коде вызывать malloc() - можно и работать будет, но так не принято.
Но это эскиз к вокалу. Напоминаю, у нас импортнуты pathlib и os (а, следственно, и os.path). То есть у нас есть перегруженный "/" для Path и os.path.join(). Но мы имеем (имена изменены):
Естественно, foo продолжает оставаться типа pathlib.Path.
Вот как раз тот случай, когда код работает не благодаря, а вопреки программисту. Хотя этот же человек год назад писал assert x == True, так что надо радоваться прогрессу.
Я не буду тут про отсутствие def main(), стандартного if __name__ == '__main__' и посланный лесом PEP 8. Это крючкотворство.
Но зачем при импорте pathlib вызывать os.getcwd()? Это все равно, что в плюсовом коде вызывать malloc() - можно и работать будет, но так не принято.
Но это эскиз к вокалу. Напоминаю, у нас импортнуты pathlib и os (а, следственно, и os.path). То есть у нас есть перегруженный "/" для Path и os.path.join(). Но мы имеем (имена изменены):
foo = Path(__file__).parent # makes sense in context
# ...
bar= '{0}/xyzzy'.format(foo) # Sooo cross-platform
with open(bar, 'r') as f: # open() accepts path-like objects!
# ... who cares ...
Естественно, foo продолжает оставаться типа pathlib.Path.
Вот как раз тот случай, когда код работает не благодаря, а вопреки программисту. Хотя этот же человек год назад писал assert x == True, так что надо радоваться прогрессу.