X86I0R
Наверняка можно сократить раза в полтора, но я тупой.
https://i.imgur.com/FBPqS8B.png
Сегодня я принёс вам упражнение для разминки. Попробуем сымитировать что-то подобное реактовским компонентам на питоне. Без использования транспилера. Да, синтаксис будет не html/xml-ный, зато без транспилера — чистый питон. И чтобы всё динамически — ни о каких тегах и атрибутах рендерер не знает, можно использовать любые (то, что class_
отрендерился в class
— просто strip´аем андерскоры, если есть, костыль, чтобы использовать зарезервированные слова).
Контекст реализовывать не нужно (я про подстановку переменных из инстанса компонента в шаблон при рендере, в моём примере компонент вообще инстанцировать не надо), там ничего интересного.
Усложнённый вариант — сделать из el1(attr1='value1')['text1', el2(attr2='value2'), 'text2']
такое: el1[attr1:'value1', 'text1', el2[attr2:'value2'], 'text2']
. Обращаю внимание, имена атрибутов записаны БЕЗ кавычек.
Очень хотелось бы увидеть решение от маньки, например. Он ведь такой наскилованный чувак, не так ли?
Сорь за код картинкой, лень аплодить + так наглядней ввод и вывод.
Оперативный ответ на #4EM8F6/KK5
Дунно, не видел в доках, но
echo -e 'class M(object):\n def __getitem__(self, key):\n key_type = type(key)\n if not isinstance(key, tuple): key = (key,)\n print("M()[{}] => {} sum: {}".format(", ".join(map(str, key)) if isinstance(key, tuple) else key, key_type, sum(key)))\n\nM()[1]\nM()[1, 2, 3]' | python
M()[1] => <type 'int'> sum: 1
M()[1, 2, 3] => <type 'tuple'> sum: 6
Переписал изотерификатор в однострочник:
cat file.py | python3 -c "print('exec(' + '+'.join('chr(+(not(not())))' if not c else ('chr(+(not()))' if c == 1 else 'chr(' + '+'.join('(not())' for _ in range(c)) + ')') for c in __import__('sys').stdin.read().encode('raw_unicode_escape')) + ')')" | tee output.py
Сегодня я вам принёс изотерификатор питона: https://ideone.com/XHle4T
http://dump.bitcheese.net/files/udezygu/bnwoyeurism.py
Десктопные нотификашки для бнв (виа вебсокеты).
Юзаж: bnwoyeurism.py [-c|-p|-a] [@|user1 user2 …]
Первый аргумент — показывать комменты/посты/всё соответственно; по умолчанию — всё.
Второй+ — отбор по пользователям (ники, разделённые пробелами) или все (если указать '@' или ничего).
Список можно положить в ~/.bnwoyeurism/users (по одному в строку). Файлик имеет меньший приоритет, чем аргументы.
Нужен Python 3, websocket-client и notify2 (есть в PyPI). Бажное инфа соточка, не тестил. Сори за петухон.