LINUX.ORG.RU

Учился делать Telegram-бота

 ,


1

1

Привет, ЛОР!
Есть один...

В общем, пытался в Python и Telegram API, не уверен в правильности кода и/или некоторых решений, хочу, чтобы Python-гуру оценили код и подсказали что и где неплохо бы исправить.

Бот ещё не допилен, но желающие могут его себе, т.к. все известные мне с похожим функционалом — closed-source, а значит скорее всего сливают логи из ваших чатов доброму создателю.

Из возможностей — разного рода рулеточки, статистика (WIP), запись логов и что-то ещё.
Можно легко добавлять свои собственные команды, если хоть немного знакомы с удавом.
А, ну и я осилил интерфейс конфигурирования бота с собстенными конфигами для каждой конфы — этого вообще нет нигде (ибо ограничения Telegram API) и реализовывать пришлось через одно место.

Зачем тред? Всё вышеописанное, да и просто так, чтобы, так скзть, добро не пропадало даром.
Спасибо за внимание.

NB! Если зашли в тред напомнить, что Телеграм не нужен — все и так это знают, не нужно на это тратить байты!

★★★★☆

Последнее исправление: annerleen (всего исправлений: 1)
Ответ на: комментарий от bvn13
class Foo:
    def __init__(self):
        self._protected = 'protected'
        self.__private = 'Foo private'


class Bar(Foo):
    def __init__(self):
        super().__init__()
        self.__private = 'Bar private'

    def print(self):
        print(self._protected)
        print(self.__private)
        print(self._Foo__private)
Bar().print()
protected
Bar private
Foo private
KillTheCat ★★★★★
()
Ответ на: комментарий от bvn13
>>> class C:
...   __private = 1
...   def test(self):
...     print(self.__private)
...
>>> c = C()
>>> c.test()
1
>>> c.__private
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'C' object has no attribute '__private'
>>> c._C__private
1
WitcherGeralt ★★
()
Ответ на: комментарий от bvn13

Пруф именно переименования:

>>> C.f = lambda self: self.__private
>>> c.f()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <lambda>
AttributeError: 'C' object has no attribute '__private'
WitcherGeralt ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.