Когда и как инициализируются встроенные атрибуты?__doc__
, __name__
(я думаю, я знаю об этом :)), __class__
, __setattr__
и т. Д.
В моем другом вопросе, касающемся строк документации, один из ответов упоминал, что строки документации простопростые строки, и я попытался с '
, "
и """
, и все они работали.Но когда я использовал переменную, присвоившую строковое значение, и поместил эту переменную вместо строки документации, это не сработало.Вот почему я начал задаваться вопросом, когда атрибут __doc__
инициализируется?
РЕДАКТИРОВАТЬ: Это то, что я пробовал на интерпретаторе (да, это безумие, и я странный: D)
doc_str = "Says Hello world"
class HelloWorld():
def say():
doc_str
print("Hello world !")
h_w = HelloWorld()
h_w.say.__doc__
class AnotherHelloWorld():
def __init__(self, doc_str="Says HELLO WORLD"):
self.doc_str = doc_str
def say(self):
self.doc_str
print("HELLO WORLD !")
a_h_w = AnotherHelloWorld("Scream... HELLO WORLD!")
a_h_w.say.__doc__
class YetAnotherHelloWorld():
def __init__(self, doc_str="Still does't say HELLO WORLD :( "):
self.doc_str = doc_str
def say(self):
"%s"%self.doc_str
print("HELLO WORLD .. Again!")