Mark ☢️
Потому что если аффтар библы пидор, то ты зашкваришься
Mark ☢️
А пидоров очень много
adel
Ну ок.
Mark ☢️
И в тестах так мокать удобнее
Ilya
Потому что если аффтар библы пидор, то ты зашкваришься
Офигенно пояснил про засорение глобального пространства имён
Ilya
Ой, это позавчера было
Phil
привет
Phil
для машин ленинга только tensorflow?
Evgen
для машин ленинга только tensorflow?
да вроде много чего есть http://pytorch.org/ https://radimrehurek.com/gensim/ http://scikit-learn.org/stable/ (обычно начинают с этой штуки есть курсы на Udacity или книга машинное обучение на Python)
Дмитрий
Привет, подскажите как на Винду 10 установить bs4 при помощи pip?
Vladimir
Mark ☢️
Привет, подскажите как на Винду 10 установить bs4 при помощи pip?
Вначале поставь убунту вместо маздая. Потом всё просто
Sherzod
Sherzod
В чём сложность?
Дмитрий
Sherzod
ну поставил уже
Sherzod
Пишет же
Mike
Тебя мама в детстве не учила скриншоты делать?
Mike
этому теперь с детства учат?
Если с детства не научили, на всю жизнь дебильчиком будешь, известно же
Aquinary
А разбивать классы по файлам в питоне - нормальная/хорошая/приемлемая?
Aquinary
Или не гуд?
Sherzod
Aleksandr
часто говорят "это вам не java", когда разбиваешь, но я все равно разбиваю) если не вимом писать, мне так удобнее, чем 100500 строк в 1 месте
Aquinary
Интересно) А глобальные переменные внутри классов не имеют альтернативы?
Aquinary
Есть у меня класс, в нём методы. Эти методы юзают одну общую переменную (так надо, хз как по другому)
Aquinary
Aquinary
Примерно как-то так
Aquinary
Но говорят, что глобальные - зло и нужно стараться не юзать их
Aquinary
Как быть?
Sherzod
Как быть?
использовать синглтон
Sherzod
что тоже зло (так говорят)
Sherzod
а код жесть, хоть и на взгляд чистый. Это вы так в пайтоне пишете?
Aquinary
Sherzod
Можете объяснить? Старался соблюдать PEP8
я не питонист, просто смотрю на эти global _tg_api в двух местах... бррр...
Sherzod
так это бед практикс как раз
Хотелось бы узнать, как правильно. А то вдруг
Aleksandr
Есть у меня класс, в нём методы. Эти методы юзают одну общую переменную (так надо, хз как по другому)
если переменная ссылочного типа - можешь ее классметодом изменять, она будет "глобальной". Так прокатит например если ты изменешь поле словаря к примеру
Aleksandr
если будешь делать self.a= 'new' и cls.a = 'new' - не прокатит
Aleksandr
а вот cls.a['param'] = 'new' - вполне
Aquinary
Эх, надо разбираться
Aquinary
Вы бы видели код до этого :D
Aquinary
Когда всё сплошь методами зафигачено
Aleksandr
Когда всё сплошь методами зафигачено
как будто это что-то плохое
Mike
а чем тебя не устраивает ее статической сделать и скопировать туда?
Phil
как при помощи питона забрать инфу с сайта с регистрацией без апи
Phil
разрешите доебаться
Mike
нода уходи
Aquinary
Ееее, всё оказалось куда проще, надо было просто юзать self внутри классов и всё окей работает
Aquinary
Без всяких global и т.д.
Aquinary
Покажи
Только вот не пойму, всё работает не зависимо от того, объявляю ли я переменную где-то ранее или нет. Ну, всяком случае нужный мне функционал от класса (авторизация и отправка контента) это выполняет
Bogdan (SirEdvin)
Заранее советую попробовать использовать что-то типо pylint, что бы он бил за такое ногами и советовал таки объявлять поля в методе \__init\__
Aquinary
Т.е. необязательно объявлять перменные вне методов?
Bogdan (SirEdvin)
Ну, это не конструктор, он немного раньше, что-то вроде метода инициалзиации, который вызывается после создания
Bogdan (SirEdvin)
Не обязательно
Aquinary
Это дико звучит, если брать в пример сишку
Aquinary
Но если так - то ладно
Bogdan (SirEdvin)
Еще паскаль в пример можно взять, с его динамическими массивами)
Aquinary
Кстати, а как работают подходы по типу геттеров/сеттеров в классах, чтобы не обращаться к полям напрямую?
Bogdan (SirEdvin)
Если это очень сильно нужно (вопрос зачем), есть @property
Bogdan (SirEdvin)
https://www.programiz.com/python-programming/property тут вроде довольно неплохо для начала написано
Phil
дан лист и в нем тоже есть лист items = [ “aaa”, [ “bb”, ”bbb” ] , ”ccc” ] пользователь пишет запрос strochka = input() я делаю так: for item in items: if strochka==item: delat_chto_to() но delat_chto_to() выполняется только если пользователь ввел строчку из невложенной части списка. Как сделать что б еще работало если пользователь введет bb или bbb, но лист менять нельзя
tEma
for item in items: if strochka == item: fun() for x in item: if strochka==x: fun()
tEma
примитивно, возможно есть способ лаконичнее
Phil
нет
Oleg
Например, [[“aaa”], [ “bb”, ”bbb” ], [”ccc”]]
Phil
ааа
Phil
ща посмотрю
Anonymous
дан лист и в нем тоже есть лист items = [ “aaa”, [ “bb”, ”bbb” ] , ”ccc” ] пользователь пишет запрос strochka = input() я делаю так: for item in items: if strochka==item: delat_chto_to() но delat_chto_to() выполняется только если пользователь ввел строчку из невложенной части списка. Как сделать что б еще работало если пользователь введет bb или bbb, но лист менять нельзя
Питон только начал изучать и скорее всего какой-то синтаксический сахар я не знаю, чтобы не делать лишние телодвижения, но ты можешь рекурсивно обойти с вхождением вовнутрь, типо того: items = ['aa', ['bb', 'bbb', ['dd', 'd']], 'cc'] userinput = 'dd' def for_list(items, userinput): for item in items: if (isinstance(item, list)): return for_list(item, userinput) if (item == userinput): print('yoba') for_list(items, userinput)
Anonymous
Если вложение всего одно, то https://stackoverflow.com/questions/952914/making-a-flat-list-out-of-list-of-lists-in-python
Если первый вариант, то должно упасть на его задаче, потому что у него не итерабельные обьекты (точнее поведение будет совсем не то, цикл начнет перебирать посимвольно)
Dmitry
Да, вот для рекурсивного: https://stackoverflow.com/questions/2158395/flatten-an-irregular-list-of-lists
Hasan
Товарищи есть ли с способ вывести код функции. Без квайнов