Python-内置变量/属性的初始化

时间:2011-10-07 13:35:41

标签: python initialization init built-in docstring

何时以及如何初始化内置属性? __doc____name__(我想我知道这个:)),__class____setattr__等。

在关于文档字符串的另一个问题中,其中一个答案提到文档字符串只是简单的字符串,我尝试使用'""""并且它们都有效。但是,当我使用赋值字符串值的变量并将该变量放在docstring的位置时,它不起作用。这就是为什么我开始想知道__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!")

1 个答案:

答案 0 :(得分:2)

每个人都不一样。 (毕竟,每个人都是special!)有些是类属性,有些是实例属性,有些是继承属性。

创建类时会初始化

__doc__(您也可以将dict参数传递给type构造函数)。特殊语法仅适用于字符串文字,但如果需要变量docstring,则可以明确设置它:

class SomeClass(object):
    __doc__ = "This is class #{0}.".format(1)

__name__也在创建类时设置。

创建实例时设置

__class__(即__new__)。

__setattr__和朋友继承自object