@ru_python

Страница 8353 из 9768
Tishka17
13.03.2019
06:19:34
Работает

Вообще, да. От ученика это и хотели

Но тут предложили репр для класса

Я даже погуглил как правильно это сделать, ни разу в голову не приходило

Google
Tishka17
13.03.2019
06:20:48
Вот даже интересно, а можно репр для функции сделать?

Alexey
13.03.2019
06:21:18
Mr
13.03.2019
06:21:23
Дак чего гуглить если выше уже про метакласс написали

Cykooz
13.03.2019
06:21:38
Хотя странно требовать такое от ученика. Зачем ему интроспекция и вся вот эта динамическая шелуха. Ему бы алгоритмики, if-чики, циклы и ввод данных из консоли.

Tishka17
13.03.2019
06:21:46
Дак чего гуглить если выше уже про метакласс написали
Да ни разу в жизни метаклассы не приходилось юзать

Иногда быстрее чем гуглить

Cykooz
13.03.2019
06:22:49
help(help) ?

Mr
13.03.2019
06:22:59
Хз кому как удобнее. Мне нагляднее всегда онлайн доку на втором мониторе держать

M
13.03.2019
06:23:30
help спасает, когда онлайн доки посмотреть не варик

Tishka17
13.03.2019
06:23:54
def x():pass x.__repr__=lambda s: "124" print(repr(x)) Все равно выводит оригинальный репр

Google
Mr
13.03.2019
06:25:45
Ок. Один большой тоже подойдёт :-)

Shieldy
13.03.2019
06:26:17
Добро пожаловать, @Yunickin! Не забудь ознакомиться с правилами чата. Ссылка в описании группы.

Добро пожаловать, Михаил Jac! Не забудь ознакомиться с правилами чата. Ссылка в описании группы.

?? Eugene
13.03.2019
06:27:45
Alexey
13.03.2019
06:28:02
def x():pass x.__repr__=lambda s: "124" print(repr(x)) Все равно выводит оригинальный репр
Функции неизменяемые (вроде). Надо как-то при создании свой репр подпихивать.

Tishka17
13.03.2019
06:29:40
когда какая-нибудь неведомая фигня прилетает

Михаил
13.03.2019
06:30:55
Привет, с помощью питона можно парсить страницы на https?

Valery
13.03.2019
06:31:07
Кто помнит, как в терминале линуха сделать скрипт, типа ls | python3 "_.replace('a', 'b')" ?

Alexander
13.03.2019
06:32:50
Alexander
13.03.2019
06:33:20
какой?
сам же написал: ls | ....

Valery
13.03.2019
06:33:55
сам же написал: ls | ....
python3: can't open file 'print(_)': [Errno 2] No such file or directory

Mr
13.03.2019
06:33:56
Ls | sed ‘s/a/b/g’ штоль

Valery
13.03.2019
06:34:11
Ls | sed ‘s/a/b/g’ штоль
не, именно питоном

у меня там синтаксис от балды

Valery
13.03.2019
06:34:24
я просто не помню как правильно

ls | python3 -c "import sys;print(sys.stdin.read())"
спасибо! щас попробую

да, работает! Емнип был синтаксис короче, нет?

Google
Cykooz
13.03.2019
06:35:18
Не знаю, первый раз такое делаю ?

Alexey
13.03.2019
06:35:19
Функции неизменяемые (вроде). Надо как-то при создании свой репр подпихивать.
Не, фигню написал. def foo(): return my_help = lambda : "do nothing" foo.__repr__ = my_help print(foo.__repr__())

?? Eugene
13.03.2019
06:35:35
Это дело можно средствами gnu проще сделать

?? Eugene
13.03.2019
06:38:50
Да низя, функции - анбаунд

А репр таки из класса забирается

Разве что object'у репр назначить (не уверен)

Mr
13.03.2019
06:41:07
Tishka17
13.03.2019
06:41:20
Разве что object'у репр назначить (не уверен)
все равно из класса берет, ага

Cykooz
13.03.2019
06:56:11
Через input() можно попробовать
input() только одну строку из stdin достаёт

Alexey
13.03.2019
07:00:25
ну это же не repr(foo) =))
Знаю. Я о том, что функции изменяемы, просто репр работает по другому: repr = lambda obj: type(obj).__repr__(obj)

Shieldy
13.03.2019
07:02:19
Добро пожаловать, @ad_mf! Не забудь ознакомиться с правилами чата. Ссылка в описании группы.

Iliya
13.03.2019
07:13:44
Утрое доброе, время сумасшедших вопросов. Заранее прошу прощения Вопрос по List Comprehensions Есть лист например из 10 элементов mlst = [1,2,3,4,5,6,7,8,9,0] хочу разбить его на листы по 3, чтобы мог передать [1,2,3] и тд и последний лист [0] не помню как Вот есть такой вариант def split(lst, count): return [lst[i::count] for i in range(count)] mlst = [1,2,3,4,5,6,7,8,9,0] n_mlst = split(mlst, 3) print(n_mlst) Может быть есть что-то встроенное или более быстрое, а то у меня лист на 1.1М и разбить его надо по 10к

Iliya
13.03.2019
07:17:05
А зачем нужно так много мелких списков если не секрет?
чтобы в базу ими стукнуться и не положить ее :)

Andrew
13.03.2019
07:18:22
чтобы в базу ими стукнуться и не положить ее :)
Это иррациональное использование ресурсов. Почему просто батчами не класть их в базу без создания новых списков?

Iliya
13.03.2019
07:20:16
Это иррациональное использование ресурсов. Почему просто батчами не класть их в базу без создания новых списков?
можно подробнее? Ситуация у меня такая, что есть лист с 1.1М значений и надо их все проверить запросом в бд, я хоте бы идти по этому списку и брать по 10к и отправлять запрос, получать ответ и брать следующие 10к А как вы предалагете?

Ирод Раковой
13.03.2019
07:21:11
Что пробивать чтобы выучить как строить приложения ? Что-то тип software architecture ? Тип знать что куда ложит. Аля разделить работу с дб и меседж хендлер в разные файлы и т.д. ?

Google
Deep Sea
13.03.2019
07:22:12
Плюс есть уже готовый islice в itertools

Iliya
13.03.2019
07:25:21
а исходные данные именно list?
самые исходные нет, я их в лист прегоняю, там вообще мрачненько файл xlsx на 1.1М строк

Tishka17
13.03.2019
07:25:45
если есть уже именно лист - ( mlist[i*3:i*3+3] for i in range(len(mlist)//3) )

Iliya
13.03.2019
07:25:54
[ mlist[i*3:i*3+3] for i in range(len(mlist)//3) ]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] Потерялся 0

Ирод Раковой
13.03.2019
07:26:43
паттерны от банды четырех, и ещё какая-то книга от дядюшки боба
Я думал что банда только ООП паттерны сделала. Не помнишь название книги ?

Iliya
13.03.2019
07:26:44
Iliya
13.03.2019
07:27:14
Я думал что банда только ООП паттерны сделала. Не помнишь название книги ?
Design Patterns Книга, Джон Влисидис, Ральф Джонсон, Ричард Хелм, и Эрих Гамма

Tishka17
13.03.2019
07:27:42
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] Потерялся 0
>>> count = len(mlist)//3 + 1 if len(mlist)%3 else 0 >>> [ mlist[i*3:i*3+3] for i in range(count) ] [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

Ирод Раковой
13.03.2019
07:28:31
Я про построения приложение или сервиса спрашивал

По типу MVC

Что гуглить

Tishka17
13.03.2019
07:28:50
ну если с этими паттернами все - тогда дядюшка боб

Ирод Раковой
13.03.2019
07:28:50
Как это называется ?

Google
Tishka17
13.03.2019
07:29:22
Я про построения приложение или сервиса спрашивал
почитай про чистую архитектуру и про DDD

да, спасибо, проверю на 101к
ну замени скобки на круглые =)

вообще, если у тебя изначально не список, а генератор, то проще через islice, да

LighteR
13.03.2019
07:30:04
Что гуглить
martin fowler entrerprise patterns

Tishka17
13.03.2019
07:30:16
ну да, фаулер же ещё

забыл

Ирод Раковой
13.03.2019
07:30:27
Пасиб

Iliya
13.03.2019
07:32:49
>>> count = len(mlist)//3 + 1 if len(mlist)%3 else 0 >>> [ mlist[i*3:i*3+3] for i in range(count) ] [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
чуть добавил шаг, чтобы было удобнее тестить mlist = [1,2,3,4,5,6,7,8,9,0,19] step = 5 count = len(mlist)//step + 1 if len(mlist)%step else 0 for i in [ mlist[i*step:i*step+step] for i in range(count) ]: print(i) Интересно, что с этим кодоп по производителности

Tishka17
13.03.2019
07:37:50
def subslice(x, count): try: for i in range(count): yield next(x) except StopIteration: return def it(x): x = iter(x) while True: yield subslice(x, 3) for c in it(range(10)): n = 0 for i in c: print(i) n += 1 if n == 0: break

может быть можно оптимальнее

Denis
13.03.2019
07:38:06


Tishka17
13.03.2019
07:38:30
хотя тебе внутренние генераторы не нужны, можно список возвращать

чуть добавил шаг, чтобы было удобнее тестить mlist = [1,2,3,4,5,6,7,8,9,0,19] step = 5 count = len(mlist)//step + 1 if len(mlist)%step else 0 for i in [ mlist[i*step:i*step+step] for i in range(count) ]: print(i) Интересно, что с этим кодоп по производителности
$ python3 1.py === 0 1 2 === 3 $ cat 1.py def subslice(x, count): try: for i in range(count): yield next(x) except StopIteration: return def it(x): x = iter(x) while True: s = list(subslice(x, 3)) if not s: break yield s for c in it(range(4)): print("===") for i in c: print(i)

вот так лучше

Страница 8353 из 9768