Tishka17
Почему же?
Риск говнокода 90%
Tishka17
Глобальные переменные в большинстве случаев нарушают инкапсуляцию. К ним открыт неконтролируемый доступ отовсюду. В большом проекте при обилии глобальных переменных возникает путаница в именах. Глобальную переменную же видно отовсюду, надо, чтобы отовсюду было понятно, зачем она. Глобальные переменные в большинстве случаев нарушают принцип инверсии зависимостей (или делают возможным его нарушение). Глобальные переменные ухудшают масштабируемость проекта. Глобальные переменные ухудшают читаемость кода (в каком-то конкретно взятом месте непонятно, нужна ли какая-то конкретная глобальная переменная, или нет). Глобальные переменные приводят к трудноуловимым ошибкам. Примеры: нежелательное изменение её значения в другом месте/другим потоком, ошибочное использование глобальной переменной для промежуточных вычислений из-за совпадения имен, возвращение функцией неправильного значения при тех же параметрах (оказывается, она зависима от глобальной переменной, а ее кто-то поменял). Глобальные переменные создают большие сложности при использовании модульного тестирования. Глобальные переменные увеличивают число прямых и косвенных связей в системе, делая её поведение труднопредсказуемым, а её саму - сложной для понимания и развития.
Tishka17
Зачем тебе несколько пралелльных циклов, которые должны быть не пралаллельны - вообще не понятно
Dima
Глобальные переменные в большинстве случаев нарушают инкапсуляцию. К ним открыт неконтролируемый доступ отовсюду. В большом проекте при обилии глобальных переменных возникает путаница в именах. Глобальную переменную же видно отовсюду, надо, чтобы отовсюду было понятно, зачем она. Глобальные переменные в большинстве случаев нарушают принцип инверсии зависимостей (или делают возможным его нарушение). Глобальные переменные ухудшают масштабируемость проекта. Глобальные переменные ухудшают читаемость кода (в каком-то конкретно взятом месте непонятно, нужна ли какая-то конкретная глобальная переменная, или нет). Глобальные переменные приводят к трудноуловимым ошибкам. Примеры: нежелательное изменение её значения в другом месте/другим потоком, ошибочное использование глобальной переменной для промежуточных вычислений из-за совпадения имен, возвращение функцией неправильного значения при тех же параметрах (оказывается, она зависима от глобальной переменной, а ее кто-то поменял). Глобальные переменные создают большие сложности при использовании модульного тестирования. Глобальные переменные увеличивают число прямых и косвенных связей в системе, делая её поведение труднопредсказуемым, а её саму - сложной для понимания и развития.
Это простые 3 функции не в продакшн. Инкапсуляция не нарушена. Масшабируемость проекта не планируется. Другие люди поддерживать код не будут. С "прямыми и косвенными связами в системе" всё норм.
Tishka17
define истинный
Dima
Если ты так принципиально не любишь global, я могу поставить всё это в аргументы.
Tishka17
Тогда просто удали его и не задавай вопросы
Dima
Тогда просто удали его и не задавай вопросы
Отличный "поиск питоньих мудростей"
Dima
А совет вообще высший клас)
Tishka17
Tishka17
И глобальные переменные я не просто так не люблю. У тебя из-за них логика взаимодействия функций нарушена
Vlad🍁
В wget это вряд ли получится закинуть, мне нужно все картинки отсортировать по id
Vlad🍁
Так что получается асинком все делать надо
Dima
И глобальные переменные я не просто так не люблю. У тебя из-за них логика взаимодействия функций нарушена
Я тоже их не люблю. Но в этом случае их было использовать удобно, и логику они не нарушали.
Vlad🍁
Но почему-то картинки не сохраняет
🍁 Jaŭhien
cat pictures.txt | sort | wget
Vlad🍁
Так скачать все или отсортировать?
Скачать и отсортировать
Vlad🍁
Я на всякий написал, потому что он не сохранял
Vlad🍁
Я знаю это
Tishka17
Скачать и отсортировать
Ну скачай и отсортируй
Vlad🍁
Папки создает, а файл не сохраняет
Vlad🍁
Так он файлы не сохраняет
Tishka17
Я тоже их не люблю. Но в этом случае их было использовать удобно, и логику они не нарушали.
Ну у тебя уже нарушена: по твоему объяснению надо последовательно вызвать одну после другой. Используя при этом результат прошлый. А реально написано параллельно
Tishka17
Ладно. Я подал идею
Tishka17
Дальше сам
Dmytro
Если я сделаю def m(some): pass k = m m = functools.partial(m, "some") В k останется старая версия m?
Vlad🍁
Vlad🍁
По идее он должен сохранять скачанные картинки, не?
Tishka17
Скачать и отсортировать
Погоди. Отсортировать - это разложить по папкам что ли?
Tishka17
Это называется сгруппировать
Vlad🍁
Сгруппировать
Tishka17
А я голову ломаю
Tishka17
Ну вообще я бы скачал, а потом разложил по папкам
Dmytro
Сгруппировать
Скачай с wget а группируй с питоном
Tishka17
Благо в баше есть функции работы со строками
Dmytro
Может и с башнем норм, но не знаком
Vlad🍁
Баши и wget это круто, но мне интересно че он не сохраняет
Tishka17
Прям for i in *.jpg; do mv...
Данила
Кто-нибудь занимался разработкой Вайбер бота?
Tishka17
А items точно не пустой?
Vlad🍁
Точно, я делал принт
Tishka17
А статус код точно 200?
Tishka17
И почему item[-3:]?
Данила
Кто-нибудь занимался разработкой Вайбер бота?
Я сделал публичный аккаунт там ни чата ничего нет кто может подсказать как протестировать бота
Tishka17
А. Это типа расширение
Vlad🍁
А статус код точно 200?
А вот это походу оно
Vlad🍁
Не 200
Vlad🍁
И почему item[-3:]?
Расширение
Tishka17
Откуда ты решил, что расширение будет? И что оно будет 3 символа?
Dmytro
Расширение
А если .jpeg будет?
Vlad🍁
А если .jpeg будет?
Он берет расширение с ссылки
Vlad🍁
А
Vlad🍁
Понял
Vlad🍁
Ну щас доделаю
Tishka17
Забей
Vlad🍁
Но там все jpg по идее
Tishka17
С 200 разберись
Vlad🍁
Один вопрос
Vlad🍁
Как это лучше закинуть в параллельное выполнение
Tishka17
Ну вот оно параллельно, не?
Vlad🍁
Вроде
Tishka17
Каждый таск сам по себе
Vlad🍁
Vlad🍁
Он на запросе чет исчезает
Vlad🍁
Как будто не проходит
Vlad🍁
Потом сюда попадает
Vlad🍁
Мб трабл в самой библе
Vlad🍁
Завтра перепишу на greguests