Dmytro
Я смотрел только, что пас,ьи много сжирает (де)сериализация
Dmytro
Чем что?
В коде тупа with open() as f: foo = pickle.load(f) Хранится большой словарь на несколько косарей записей со вложенными словарями
Dmytro
Мне такой подход кажется странным, или это нормальная практика?
Tishka17
Здравствуйте. Что быстрее - доступ по ключу в словаре, или проверка условия if var == 'some_text'?
from timeit import timeit x={str(i)+'!':i for i in range(100)} s='2!' def do(): x[s] def do2(): s=='2!' print(timeit('do()', globals=globals())) print(timeit('do2()', globals=globals()))
Tishka17
Aragaer
ну есть locals() и globals(), соответственно они тоже словари
Aragaer
в поиске в словаре надо в globals найти словарь, а в нем найти нужное значение, а в сравнении надо найти только саму переменную
Tishka17
ну есть locals() и globals(), соответственно они тоже словари
Ну тут в обоих случаях сначала находим переменную для проверки
Aragaer
ага
Tishka17
А потом уже поиск в словаре или сравнение
Tishka17
Tishka17
А вот .get вместо скобок уже ощутимо медленнее
Name
Разница слишком мала, что бы делать выводы
Name
Andrey
Tishka17
Какая разница насколько он быстр, если его нельзя юзать?
S
А где вы храните токены, ключи ко всяким апишкам? В исходном коде выглядит как то несекюрно и криво. Хранить в json файликаз и подгружать когда надо?
Dmytro
Нахуя тебе пикл?
Мне дали код, в нем он используется
S
Я на флешке
А флешку где хранить
Name
В .txt файле 👍
Anonymous
А флешку где хранить
Тут уже от возможностей каждого зависит.
Tishka17
Pickle плохо, потмоу что: 1. Небезопасно (https://habr.com/ru/company/otus/blog/353480) 2. Формат жёстко привязан к внутренней структуре кода 3. python-only
Aragaer
и тем не менее, если ты что-то нафигачил по-быстрому в скрипте, а хочешь это в другом своем таком же наколенном скрипте, то можно
an0yms
Привет кто то может помочь мне разобраться, почему я получаю ошибку? Мой проект: └── test_folder |___ __init__.py ├── foled_1 │ ├── __init__.py │ └── file_1.py └── foled_2 ├── __init__.py ├── file_2.py Когда я пытаюсь запустить файл file_1.py каторый находится в папке foled_1 Через PyCharm всё работает но когда я пытаюсь запустить этот же файл через terminal Получаю ошибку: Traceback (most recent call last): File "file_1.py", line 1, in <module> from foled_2.file_2 import a ModuleNotFoundError: No module named 'foled_2' Скрипт file_1.py: from foled_2.file_2 import a print(a) print("Hello") Скрипт file_2.py: a = 2
Tishka17
и тем не менее, если ты что-то нафигачил по-быстрому в скрипте, а хочешь это в другом своем таком же наколенном скрипте, то можно
Ну тут сложно возразить. Если надо 'по быстрому на коленке', любые средства подойдут
an0yms
В папке foled_1 нету никаких foled_2 поэтому импорт не работает
Да но я делаю import foled_2.file_2 import a И всё нормально работает в PyCharm
Tishka17
Да но я делаю import foled_2.file_2 import a И всё нормально работает в PyCharm
Что значит "все нормально работает"?
Kop
Да но я делаю import foled_2.file_2 import a И всё нормально работает в PyCharm
Все дело в папке изначальной в проекте. Такое часто бывает
Kop
Тут проблема в том, что он создал проект, потом создал ещё папку и пучарм думает, что это что-то вложенное и даёт подсказку так делать, но когда напрямую, то все немного иначе. Чтоб работало просто убери foled2
Kop
При запуске из консоли просто убери импорт фолд и посмотри на результат
an0yms
При запуске из консоли просто убери импорт фолд и посмотри на результат
Всмысле убрать? Как я могу просто убрать импорт...?
âDêšwu öBipci
Вилкой, вот так рас, рас.
Rin
Подскажите, почему так? В условиях указано, что если text не равен None, то выводит текст. В итоге в консоле появляется None
Rin
Kirill
Наверное потому что >>> "None" is not None True
Aidar
скорее всего message.text это lazy объект
Rin
То же самое же
Rin
выдает
Forevka ÐΞV
Tishka17
А конфигурацию запуска?
Aidar
выдает
выведи type(message.text)
Tishka17
Хотя странно чет
👑OGURCHIK🖤
😂
Rin
выведи type(message.text)
ничего не выводит
👑OGURCHIK🖤
😂
Aidar
ничего не выводит
не может ничего не выводить
Tishka17
ничего не выводит
А ты как вывел?
Aidar
может не сделал принт?
Aidar
print(type(message.text))
Aidar
я думал это очевидно
Rin
<class 'NoneType'>
Aidar
🌚
!report
👑OGURCHIK🖤
Aidar
<class 'NoneType'>
прикольно, можно код посмотреть?
Tishka17
http://www.opennet.ru/opennews/art.shtml?num=50957
👑OGURCHIK🖤
If text in message?
👑OGURCHIK🖤
Как там проверить в списке
Tishka17
Юзал?
Нет. Главное там есть абзац с краткой инфой о других либах
Rin
прикольно, можно код посмотреть?
if message.text is not None: print(message.text)
Tishka17
if message.text is not None: print(message.text)
Целиком. Со всеми принтами и тем что ты новый добавил