Nurlan
Добрый день! Подскажите как мне проверить есть ли указаное число (например 10) в отрезке -15 .... 12 я понимаю что оно есть, пробовал писать типа if (x == range(-15,12): print (True) но не работает
🍁 Jaŭhien
if -15 < x < 12: ...
🍁 Jaŭhien
if x in range(-15, 12): ...
Anonymous
Добрый день! Как использовать хранимую процедуру MySQL из pyqt?
Nurlan
if -15 < x < 12: ...
Благодарю видимо я не так использовал range
Sergey
Благодарю видимо я не так использовал range
x - число, а range() возвращает последовательность. Число не может быть равно последовательности (даже состоящей из одного этого числа). Скорее, ты не так использовал проверку условия.
Andrew
Ребята подскажите запросы на api telegramm идут по умолчанию через import socks import socket socks.set_default_proxy(socks.SOCKS5, "localhost", 9050) socket.socket = socks.socksocket а как сделать запрос get, без proxy? наверное как расграничить какие запросы должны с proxy а какие без proxy
Anonymous
Без прокси роскомнадзор не пропустит если сервер ру
Anonymous
А што за либа?
В смысле, используешь ли кастомные либы типа telepot
Anonymous
нет не использую
Красавчик Ты имеешь ввиду какую ссылку нужно загрузить чтобы вызвать getUpdates?
Andrew
Красавчик Ты имеешь ввиду какую ссылку нужно загрузить чтобы вызвать getUpdates?
дело в том что запросы на api.telegram уходят по умолчанию через tor: import socks import socket socks.set_default_proxy(socks.SOCKS5, "localhost", 9050) socket.socket = socks.socksocket там все нормально достаю все что нужно делаю запрос на другой сайт приходит ответ 403 как сделать запрос по своему белому ip без proxy
Anonymous
Можно поподробнее
Anonymous
Если я правильно тебя понял, проще всего будет разово вызывать из питона другой питон скрипт, который просто сделает нужный тебе запрос на сайт (без tor) и возвратит вывод
Anonymous
Только не забывай все освобождать и завершать процессы. Если сокеты блокирующие, то все равно может возникнуть проблема с их повторным открытием на данных портах, некоторое время
Anonymous
Так что вероятно придется каждый раз открывать на новом порту
Anonymous
Спасибо
Не за што пока)
Nurlan
Кто знает как помимо float('inf') указать бесконечность?
Sergey
Кто знает как помимо float('inf') указать бесконечность?
http://qaru.site/questions/25256/how-can-i-represent-an-infinite-number-in-python
Daniil
http://qaru.site/questions/25256/how-can-i-represent-an-infinite-number-in-python
лучше постить то, что по кнопке "источник" :)
Sergey
лучше постить то, что по кнопке "источник" :)
Наверное. Но мне было интересно насколько быстро можно это загуглить. Примерно 15 секунд с тем чтобы убедиться что статья подходит)
Dima
Ребят, тут кто то работает с ботами в телеге?
Anonymous
Всем привет. Подскажите, как можно изменить переменную b из класса
Anonymous
class a: def init(self): b = 3 if name == 'main': b = 1 a() print(b)
Anonymous
Выводит 1, а нужно 3
Tishka17
А почему ты решил что будет 3?
Tishka17
Ты в классе в ините создал локальную переменную и сохранил в нее 3
Aragaer
надо global b и прочую подобную муть
Tishka17
Не учи плохому
Anonymous
Везде global писать - говнокод какой-то получается
Aragaer
ага
Aragaer
ну оно уже говнокод, так что
Anonymous
Ты что хочешь сделать?
Изменить внешнюю переменную нужно
Tishka17
Изменить внешнюю переменную нужно
Не нужно. Это нарушение зоны ответственности класса
Tishka17
Классу должно быть по барабану на внешние переменные
Tishka17
Есть поля, есть возвращаемые значения в методах или можно прокинуть внутрь какой-нибудь контейнер, в котором он сможет что-то менять
Anonymous
Хорошо, буду думать
Tishka17
Я тут чтото вспомнил. Почему-то люди противопоставляют функциональное и юнит-тестирование. Так вот это не противоположности, а перпендикулярные оси. Делить тесты можно по разным признакам: функциональное vs тестирование производительности, юнит vs интеграционное. И ещё: при юнит тестах не обязательно тестировать каждый метод класса. Юнитом вполне может считаться отдельный класс. Например, очевидно что геттер и сеттер одного поля нельзя проверить независимо не влезая во внутреннюю структуру объекта или не имея альтернативного сеттера (например параметра конструктора)
Aragaer
ну я например в юнит тестах использую "сначала протестировал метод Х, затем тестирую метод У в предположении, что Х работает корректно"
Aragaer
и да, сеттеры-геттеры очевидно тоже
Tishka17
это норм, да
Tishka17
но иногда X без Y не проверить же. Приходится покрывать пару
Aragaer
вообще, я не сильно думаю на тему атомарности какой-то. Я если по тдд, то "так, мне надо такое поведение... как мне проще всего проверить это?"
Aragaer
и там как пойдет
Tishka17
это да, просто несколько раз натыкался на “надо сначала проверить xxx, только потом yyy”. Да как я проверю что там сделал xxx без вызова yyy?
Aragaer
ну условно, пусть я тестирую свой дикт и хочу проверить, что set и get работают
Tishka17
типа class X: def __init__(self): self.data=0 def set(self, v): self.data=-v def get(self): return -self.data вполне нормальный класс
Aragaer
я могу проверить, что без всяких set один get вполне вернет то, что передано в конструктор
Aragaer
я могу проверить, что сам по себе get вернет какой-нибудь эррор
Aragaer
и наконец я проверю, что после успешного set последующий get вернет то, что надо
Tishka17
Sergey
Всем привет. Подскажите, как можно изменить переменную b из класса
Вопрос предполагает двусмысленность. Изменить переменную b, которая находится в классе или изменить общую переменную b, находясь при этом в классе. На второй вариант ответили, а на первый ответ a1 = a() a1.b
Aragaer
типа class X: def __init__(self): self.data=0 def set(self, v): self.data=-v def get(self): return -self.data вполне нормальный класс
и я не могу придумать ни одного теста, который бы показал, что у него "неправильная" реализация
Tishka17
и я не могу придумать ни одного теста, который бы показал, что у него "неправильная" реализация
вот и я о том же, а специально ради теста править конструктор - смысла нет
Aragaer
и не надо
Aragaer
поведение этого класса такое, какое надо
Tishka17
исправив конструктор мы увеличим сложность класса и по сути тесты будут дублировать
Aragaer
"исправлять" этот класс надо не из-за тестов
Tishka17
меня пару раз убеждали что надо
Aragaer
то есть так - не надо менять _поведение_ этого класса, оно правильное
Aragaer
но можно поменять его реализацию - то есть отрефакторить его
Aragaer
и для этого не нужно править тесты, потому что на этапе рефакторинга мы тесты не трогаем
Tishka17
ну да, только тесты от этого не изменятся. Ну только если при реализации мы не захотим какие-то новые граничные значения проверить
Tishka17
вот и отлично
Aragaer
вообще, если поведение класса описывается словами типа "есть get и set, если сначала сделать set, то потом get вернет то, что отдали в set, а если не вызывать set, то get вернет 0" - то для проверки этого поведения не нужно ничего, кроме того, что описано в этом поведении
Oleg
@Tishka17 а что есть люди, которые утверждают что тест на get/set надо делать раздельными unit-test'ами?
Tishka17
да
Tishka17
регулярно