Subbotin
интересно как у тебя будет работать конкатенация с учетом твоего кастомного опля
ну в третьем питоне просто игнорирует и работает как с обычной строкой. в чём проблема?
Tishka17
ну в третьем питоне просто игнорирует и работает как с обычной строкой. в чём проблема?
проблема в том, что я не понимаю зачем ты это делаешь и как оно должно работать
Subbotin
хочу объект, который ведет себя как строка но есть ещё атрибут, который может быть задан при инициализации.
Tishka17
просто при любых операциях с ним как со строкой ты это атрибут потеряешь
Subbotin
я понимаю
Tishka17
просто переставь locked перед *args, должно помочь. Хотя я бы переписал реальную игнатуру из str
Subbotin
короче я сделаль
Subbotin
class Field(str): def __new__(cls, *args, **kwargs): if "locked" in kwargs: locked = kwargs["locked"] del kwargs["locked"] else: locked = False instance = super(Field, cls).__new__(cls, *args, **kwargs) instance.locked = locked return instance
Subbotin
в 2019-м году есть ещё пидоры которые сидят на втором питоне. типа опенстак
Ruslan
ты уверен, что показываешь актуальный код?
чутка поспешил там после получения всех елементов, еще сек 7-10 была задепржка и решил что зависло опять) окей, значит очередь локает выход из процесса если в нем больше определенного количества елементов но как тогда по нормальному дропать? допустим я взял 100 елементов и все break единственный вариант - в конце убивать процесс?
Ruslan
я то думал для этого создан q.close()
Ruslan
ты уверен, что показываешь актуальный код?
выше я говорил про код где есть еще считывание а тот код что в первом посте - виснет, как и говорилось
Alex
покажи минимальный пример который по твоему убеждению гарантированно "виснет"
Alex
у меня не виснет
у меня тоже. поэтому и спрашиваю.
Alex
в том конкретном коде я не вижу причин для блокировок
Alex
https://t.me/ru_python/937078
запусти у себя этот код и покажи лог запуска плз.
Ruslan
main> wtf> ('test', 0) ... ('test', 999) <wtf
Ruslan
вот, видите курсор? ctrl+c не реагирует
Ivan
main> wtf> ('test', 0) ... ('test', 999) <wtf
серьезно? файл? даже скриншотом лучше
Tishka17
вот, видите курсор? ctrl+c не реагирует
эм. стабильно работает. Какая ОС, какой питон?
Ruslan
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
Tishka17
хз
Alex
хм... ну вообще т.к. ты из очереди не читаешь, вполне вероятно ты можешь упереться в размер буфера пайпа.
Alex
да, именно
Alex
воспроизводится в линуксе если увеличить размер пакета засылаемого в очередь
Tishka17
угу
Tishka17
ну я сразу предлагал читать из очереди
Alex
собственно там фокус вот в чем, у тебя процесс queue.put кладет данные во внутренний буфер, которые в фоновом потоке засылаются в пайп
Alex
Соответственно очередь висит в ожидании потока, пока тот не запишет буфер в пайп. И висит твой дочерний процесс.
Игнат
Ребят, есть 5к заголовков текста, как их автоматически класифицировать( типа nlp) ?
Alex
В multiprocessing.Queue есть метод cancel_join_thread, который позволит дочернему процессу завершиться, но тогда ты потеряешь данные из очереди, которые не успели записаться в пайп.
Alexander
Есть файл atomsvc, как используя его получить данные потока?
Alex
main> wtf> ('test', 0) ... ('test', 999) <wtf
Собственно выше ответ на твой вопрос.
A.
Всем привет! Вопрос не по теме, стоит ли поступать на направление программная инженерия, специальность "индустриальная разработка по"? Это же подготовка программистов?
Tigran
sounds like sharaga to me
A.
Тусур
Alex
Тусур
Профиль «Индустриальная разработка программных продуктов» Кем работать (трудоустройство) В Томске выпускники направления наиболее востребованы на таких предприятиях, как: «Томсксофт», Web-студия «Nicolas Group», ЗАО «ЭлеСи», ООО «Томское агентство правовой информации «Гарант»», ООО «Интант», ООО «9 бит», ООО «Контек-Софт», ООО «Элекар». названия компаний звучат устрашающе.
Dmitri
Ребят, кто с sql работал нормально? Есть проблема ,хз как решить Нужно в sql запрос передать парметры, но в не совсем нормальном виде в общем есть select from where column_name in (%s) и вот параметром нужно передать list, но в виде, приемлемом для такого форматирования грубо говоря из m_list = [1,2,3,4] нужно получить select from where column_name in (1,2,3,4) К форматированию строки прибегать не хотелось бы, но пока иного выхода не вижу
Dima
str(m_list)[1:-1]
Dmitri
str(m_list)[1:-1]
ну,собственно, это я и имел в виду, под последним просто думал у pymysql ,или любого коннектора, есть свои средства для обработки такого)
Kirill
По моему нормально должны адаптеры для баз данных вставлять списки вместо %s, даже не надо скобки круглые писать в тексте запроса
Kirill
Форматирование строк точно не стоит использовать. В крайнем случае обычно можно в адаптерах регистрировать "конверторы" для кастомных типов данных
Tishka17
гугл предлагает такой треш: https://stackoverflow.com/questions/589284/imploding-a-list-for-use-in-a-python-mysqldb-in-clause
Artyem
прям списки не обязательно должны, вот тюплы обычно вставляются именно в таком виде. списки завист от БД в postgresql array получится
Dmitri
гугл предлагает такой треш: https://stackoverflow.com/questions/589284/imploding-a-list-for-use-in-a-python-mysqldb-in-clause
похоже вот такая конструкция отработает быстрее, чем передача строки в один аргумент запроса
Tishka17
как минимум она сработает =)))
Dmitri
str(m_list)[1:-1]
в общем-то, при таких раскладах аргумент воспринимается как единое значение, в итоге получается не in (1,2), а in('1,2')
Anonymous
Ребят, в каких ситуациях рекурсия заменяет простой цикл?
Anonymous
То-есть когда лучше воспользоваться не циклом, а рекурсией
Anonymous
?
Kirill
Обычно лучше воспользоваться циклом а не рекурсией
Anonymous
зачем тогда рекурсия??)
koder
Ребят, в каких ситуациях рекурсия заменяет простой цикл?
Может во многих. Надо когда тебе на каждом этапе цикла нужны дополнительные временные переменные, которые понадобятся позже
Kirill
У рекурсии один плюс - код с ней проще выглядит
koder
У рекурсии один плюс - код с ней проще выглядит
Не всегда. Сумму массива проще циклом