Предположим, что кто-то решил (да, это ужасно) создать ввод ввода следующим образом: пользователь вводит команду на консоли python после импорта вашего класса, эта команда на самом деле является именем класса, функция __str__
имени класса является фактически функцией с побочными эффектами (например, команда «север», и функция меняет некоторые глобальные переменные, а затем возвращает текст, описывающий ваше текущее местоположение). Очевидно, это глупая вещь, но как бы вы это сделали (если возможно)?Python __str__: Magic Console
Обратите внимание, что основной вопрос заключается в том, чтобы определить метод __str__
для класса без создания экземпляра класса, в противном случае было бы просто (но так же, как сумасшедший:
class ff:
def __str__(self):
#do fun side effects
return "fun text string"
ginst = ff()
>>ginst
в py3k вам нужно передать 'metaclass' в качестве ключевого слова:' class Bar (metaclass = Magic): pass', чтобы этот метод работал. – SilentGhost
@SilentGhost, спасибо за примечание –
Да, это то, о чем я думал. – Brian