знаете старкова? владельца @giftchanges. ну так воот...
недавно у него появился тег @none, который является, как я его называю, проклятым. а почему?
давайте обратимся к python. что такое None там?
В Python None - это специальное значение, которое обозначает отсутствие значения или пустоту
а к чему я вообще это?
многие telegram боты написаны таким образом, что они не учитывают отсутствие тега у пользователя. как это?
user = get_user(input_id) # class User
user.username # str | None
и вот как раз таки разработчики таких ботов не учитывают такое поведение и пишут примерно такой код:
message.reply(f"{user.full_name} has tag @{user.username}") # в лучшем случае, оно выведет что-то типа "Paul Du Rove has tag @unbrokensociety"но если попробовать получить пользователя без тега, то мы получим...
message.reply(f"{user.full_name} has tag @{user.username}") # "Some User has tag @None"и именно из-за этой ошибки возникает казус в виде того, что у какого-нибудь васи пупкина "есть" тэг None.
если вы думаете, что люди не верят в то, что у этого васи пупкина есть тег None, то вы глубоко ошибаетесь.
уже который раз наблюдаю за сообщениями а-ля "смотрите какой мне чел написал @none". вооот.
а как же можно исправить такое недоразумение? довольно просто, например...
username_text = f"has tag @{user.username}" if user.username is not None or "doesn't have any tags!"
message.reply(f"{user.full_name} {username_text}") # "Some User doesn't have any tags!"вот так просто, да.
