@ru_python

Страница 5731 из 9768
Ilya
22.06.2018
08:56:54
Кто нибудь работал с unittest библиотекой?

хотя не сильно важно знает кто-нибудь, как сделать копию вывода результата скрипта?

Gryn
22.06.2018
08:58:39
я каналом ошибся, сорян

Aragaer
22.06.2018
08:59:10
что значит копию вывода результата?

Google
Ilya
22.06.2018
09:00:35
Ну при выполнении - выводится вся информация и все шаги print например я сделал output результата в xml отчет, в итоге вся информация уходит в файл xml, а на экране пусто. хочется и туда и туда

Aragaer
22.06.2018
09:00:53
tee

tail

полно ж вариантов

Ilya
22.06.2018
09:01:52
полно? ну я не вижу не одного, вот и спрашиваю как можно tail использовать в данной ситуации?

Aragaer
22.06.2018
09:02:38
направляешь в файл, а tail -f на этот файл

ну а tee это более явно

./my-script.py | tee output.xml

Ilya
22.06.2018
09:04:18
Ну и будет выводится в xml формате, что впринципе не очень красиво и удобно

Aragaer
22.06.2018
09:05:14
а надо на экран в одном формате, а в файл в другом?

Ilya
22.06.2018
09:05:53
Ну да, чтоб при выполнении показывал обычным способом на экран и этот же текст сохранял в xml формате(использую xmlrunner)

Aragaer
22.06.2018
09:06:54
./my-script.py | tee >(./script-that-converts-to-xml.py > out.xml)

но уже да, начинаются многоэтажные паровозы

Google
Aragaer
22.06.2018
09:07:46
в этом смысле лучше просто tee в промежуточный файл с плейнтекстом, а потом уже отдельно запуск конвертера в xml

Oleksandr ror191505
22.06.2018
09:16:14
Имею вот такой вот код: class A(object): def a(self): return 1 def b(self): return 2 a = A() print('id(a.a) == id(a.b) ' + str(id(a.a) == id(a.b))) print('a.a is a.b ' + str(a.a is a.b)) Получаю вот такой вот выхлоп: id(a.a) == id(a.b) True a.a is a.b False Python 2.7.15 и Python 3.6.5 показывают одинаковый результат

Mikhail
22.06.2018
09:16:28
https://docs.python.org/3/library/unittest.html Сделать свой TestResult с сохранением в xml

https://docs.python.org/3/library/unittest.html#unittest.TestCase.run

Oleksandr ror191505
22.06.2018
09:21:34
Ну тут два вопроса: почему id==id и is дают разные результаты почему у разных методов один id

Mikhail
22.06.2018
09:22:12
>>> x = id(a.a) >>> y = id(a.b) >>> x == y False

но при этом >>> id(a.a) == id(a.b) True

Aragaer
22.06.2018
09:22:37
а, не, тут вопрос, что такое id

потому что id(a.a) это какое-то число

Oleksandr ror191505
22.06.2018
09:23:12
id это https://docs.python.org/3/library/functions.html#id

Tigran
22.06.2018
09:23:13
Пишу глупо и волнуюсь, хочу критику и вообще любое предложение! Вдохновляет python и его аналоги нейросетей. В особенности ассистенты и голосовые помощники. Только их ответы написаны заранее, это делает их отчасти бесполезными. Узнав о бихивиаризме и асоциативной системе, мне показалось, что возможно создать разумного бота. Бихивиаризм - изучает поведение животных с механистической стороны. Асоциативная система подразумевает, что поведение вызвано определёнными условиями и асоциами. Трудно об этом писать, ведь это означает, у Фреско есть несколько лекций на эту тему. К примеру: Медведь увидел человека и встаёт на задние лапы во весь рост, чтобы напугать, но это инторпритация человека. На деле медведь встаёт потому, что может и смотрит изменилось ли что-то. Воли нет. Абсолютно все действия и решения вызваны окружающей средой, ее условиями и полученным ранее опытом. Воля это когда все решения принимаются подбрасывая монету. Мне нравится вкус яблок и я могу сказать, что люблю их и это мой выбор, хотя по большому счету за меня это решили мои сенсоры - вкусовые рецепторы, обоняние - т.е их прекрасный запах. Чувствую совсем не умею излагать свои мысли, вообщем-то тут накидал схемку. У людей есть потребности, чувства, эмоции которые обычно генерируют поведение. В моей инторпритации ии любое чувство - это шкала которая постоянно уменьшается и чем меньше она становится тем более радикальной становится ии, задача ии постоянно уталять жажду = восполнять шкалу любыми средствами. К примеру потребность общаться, присутствует система ввода-вывода и возможность отправлять текст. Оператор т.е учитель должны постоянно подкреплять определённые действия. Кнопка хорошо/плохо или же оценка ии оказывает влияние на шкалу=отнимет/добавит. Полученный опыт также должен сохраняться и группироваться. Если научить ии работать с тремя символами и их комбинациями, то возможно обучить всему. Конечно это глупо и у людей гораздо больше сенсоров связанных с окружающим миром, но обычной лексике и языку ее вполне возможно обучить до уровня д2 = 300 слов и грамматика. К примеру можно с помощью юнити можно поместить ии в виртуальную 3д комнату, добавить сенсоры в марианетку и знакомить с некоторыми объектами.
у человека своя инторпритация русского языка!

Oleksandr ror191505
22.06.2018
09:24:16
>>> x = id(a.a) >>> y = id(a.b) >>> x == y False
b = id(a.a) c = id(a.b) print(c == b) True

Aragaer
22.06.2018
09:24:33
This is an integer which is guaranteed to be unique and constant for this object during its lifetime.

почему у двух методов одного объекта id одинаковый?

Ksenia
22.06.2018
09:25:29
Всем привет! есть вот такой код class AdFilterRentCountryside(AdFilterRent, AdFilterCountryside): def fill(self, **kwargs): AdFilterRent().fill(**kwargs) AdFilterCountryside().fill(**kwargs) и он мне не очень нравится,

как читабельно вызвать функцию сначала первого родителя, потом второго?

Google
Aragaer
22.06.2018
09:26:57
ну только не совсем так, а через super

Tigran
22.06.2018
09:26:57
ну, если каждый из родителей в fill вызывает super().fill(), то достаточно и в потомке вызвать super().fill()

Mikhail
22.06.2018
09:27:25


Aragaer
22.06.2018
09:27:51
https://stackoverflow.com/questions/35173479/why-do-different-methods-of-same-object-have-the-same-id

вот

Yergali
22.06.2018
09:28:20
делаю http запрос перед тем переходить на страницу нужно загрузить сертификат(p12). сертификат есть внутри браузера. не могу загрузить в коде. никто не сталкивался с такими задачами?

Aragaer
22.06.2018
09:28:34
поэтому у a.a и a.b одинаковый id

Oleksandr ror191505
22.06.2018
09:29:20
https://stackoverflow.com/questions/35173479/why-do-different-methods-of-same-object-have-the-same-id
import gc gc.disable() class A(object): def a(self): return 1 def b(self): return 2 a = A() print('id(a.a) == id(a.b) ' + str(id(a.a) == id(a.b))) print('a.a is a.b ' + str(a.a is a.b)) id(a.a) == id(a.b) True a.a is a.b False

Отключение GC не помогает

Aragaer
22.06.2018
09:29:46
а должно?

он сам внутри себя реюзает

# creates a reference to the method f In [190]: f = a.f # creates a reference to the method g In [191]: g = a.g # cannot reuse the memory location of f as it is still referenced In [192]: id(f) == id(g) Out[192]: False

Oleksandr ror191505
22.06.2018
09:30:13
а, понял

Tigran
22.06.2018
09:30:14
Подозреваю, что когда каунт ссылок доходит до нуля, объект без всякого GC высвобождается

или я неправ?

Aragaer
22.06.2018
09:30:44
it is just a cpython implementation detail and not something that you should ever rely on

Aragaer
22.06.2018
09:35:03
или я неправ?
неправ. Потому что объект вполне может на кого-то ссылаться сам по себе и тогда там начнется всякое по цепочке

Ksenia
22.06.2018
09:37:21
Я все равно не поняла, знаю что такое супер, но как его тут применить, вот моя структура классов

Google
Ksenia
22.06.2018
09:37:26


все функции филл заполняют разные поля, и должны выполняться строго в определенном порядке

?
22.06.2018
09:39:24
async(i/o)

Denis
22.06.2018
09:41:32
Ksenia
22.06.2018
09:42:27
Это селениум тесты, заполнение полей фильтров, их нужно заполнить в определенном порядке, так что все ок с иерархией

:)

?
22.06.2018
09:42:32
Так можно же еще так, если нужен порядок class foo (A, B):

Бля*

Aragaer
22.06.2018
09:42:54
я бы предложил подумать над тем, чтобы вышвырнуть наследование к чертовой бабушке

?
22.06.2018
09:43:20
Так можно же еще так, если нужен порядок class foo (A, B): def init(self): super(A, self).__init__() super(B, self).__init__()

И объявляешь их там, где нужно

Aragaer
22.06.2018
09:43:34
по-моему тут напрашивается паттерн composite

Aragaer
22.06.2018
09:43:42
и он реализуется не наследованием

?
22.06.2018
09:44:44
ну если без super, то только так A.__init__(self)

Roman
22.06.2018
09:46:34
#adcombo #cpa #ecommerce #python #web #backend #вакансия #работа Город и адрес офиса: Москва, м.Нахимовский Проспект Формат работы: Офис, пятидневка(один день удаленной работы) Занятость: Полный день Зарплатная вилка: от 130 000 до 170 000 Описание вакансии: adcombo.com ищет в свою команду middle/senior python разработчика для разработки высоконагруженных систем. От кандидата мы ждём: Отличное знание Python и опыт разработки не менее 2х лет Умение писать Unit тесты Участие в разработке архитектуры новых узлов и улучшения старых Умение писать код с использованием Flask, SQLAlchemy, Sanic Название компании: AdCombo Стек наших технологий: Python 2/3, SQLAlchemy, Flask, Sanic, PostgreSQL, ClickHouse, Redis, Docker, Jenkins, Gitlab, Prometheus, Jira Более подробно - https://stackshare.io/adcombo/adcombo

Romuald
22.06.2018
09:47:02
% vs .format Говорят, что % медленнее? Что скажут эксперты

Romuald
22.06.2018
09:47:46
def concat1(): z = x + y return z def concat2(): z = "%s%s" % (x, y) return z def concat3(): z = "{}{}".format(x, y) return z def concat4(): z = "{0}{1}".format(x, y) return z

Google
Romuald
22.06.2018
09:47:55
concat1: 153 наносекунды; concat2: 275 наносекунд; concat3: 398 наносекунд; concat4: 393 наносекунды.

Artyem
22.06.2018
09:49:10
f-строк нехватает

Alex
22.06.2018
09:50:37
Пришел грехи отмаливать
такое только кровью смывать

Romuald
22.06.2018
09:54:02
чем мерял?
В инете нашел

Tigran
22.06.2018
09:54:49
f-строки супербыстрые >>> setup = """ ... def concat1(x, y): ... return x + y ... ... def concat2(x, y): ... return "%s%s" % (x, y) ... ... def concat3(x, y): ... return "{}{}".format(x, y) ... ... def concat4(x, y): ... return "{0}{1}".format(x, y) ... ... def concat5(x, y): ... return f"{x}{y}" ... ... def concat6(x, y): ... return "".join((x, y)) ... """ >>> >>> timeit.timeit("concat1('blah blah', ' whatever')", setup=setup) 0.14509744399401825 >>> timeit.timeit("concat2('blah blah', ' whatever')", setup=setup) 0.2572201400034828 >>> timeit.timeit("concat3('blah blah', ' whatever')", setup=setup) 0.36446600199269596 >>> timeit.timeit("concat4('blah blah', ' whatever')", setup=setup) 0.37769432200002484 >>> timeit.timeit("concat5('blah blah', ' whatever')", setup=setup) 0.15754133601149078 >>> timeit.timeit("concat6('blah blah', ' whatever')", setup=setup) 0.2305382449994795

Это неправда
Ну чот по бенчмарку так и есть

Bogdan (SirEdvin)
22.06.2018
10:04:39
% vs .format Говорят, что % медленнее? Что скажут эксперты
Эксперты скажут, что микрооптимизациями путь вникуда выстелен.

Romuald
22.06.2018
10:05:24
Tigran
22.06.2018
10:05:54
если есть 3 зла, выбираем наименьшее
Ну если у тебя много свободного времени, конечно

Bogdan (SirEdvin)
22.06.2018
10:06:19
Я бы выбрал, что удобнее. Но стоит учитывать, что при логгировании все равно будет использовать синтаксис из %, так как не форматировать строки чаще всего производительнее

Romuald
22.06.2018
10:06:27
Ну если у тебя много свободного времени, конечно
не много, но тонкости знать хорошо

Bogdan (SirEdvin)
22.06.2018
10:07:10
И потом вместо dict.get() использовать try: dict[] except KeyError :) Ну, только если количество срабатываний нужное.

Tigran
22.06.2018
10:07:43
Romuald
22.06.2018
10:07:44
тыкать везде try к беде

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