Я просматривал какой-то код, и я заметил линию, которая привлекла мое внимание. Код похож на приведенный ниже пример
class MyClass:
def __init__(self):
pass
def call_me(self=''):
print(self)
Это выглядит как любой другой класс, который я видел, однако str
передается как значение по умолчанию для self
.
Если я распечатаю self
, он будет вести себя как обычно
>>> MyClass().call_me()
<__main__.MyClass object at 0x000002A12E7CA908>
Это прослушивало меня, и я не могу понять, почему это будет использовано. Есть ли причина, по которой экземпляр str
будет передан как значение по умолчанию для self?