啊哈!我看你已经发现了神奇的方法。在
双下划线被称为“dunder”,它们调用特殊的方法,这些方法可以对对象产生一些非常巧妙的效果。它们不会改变意义,但它们是非常神奇的伏都教,是你腰带上的好工具。在
__init__是一个神奇的方法,用于声明对象初始化时发生的事情。它前面只有__new__。在
我使用的这些方法中最有用的是__dict__方法。{dictionary}中的所有属性都可以转换成类中的值。虽然我不认为用它作为文件名会有用。在
下面是一个例子:class Thing(object):
def __init__(self): ##Init here is a magic method that determines what haps first
self.tint = "black"
self.color = "red"
self.taste = "tangy"
thing = Thing()
dictionary_from_class = {}
for key in thing.__dict__.keys(): ##returns all key values. here: "tint, color, taste"
dictionary_from_class[key] = thing.__dict__[key]
在python中启动Idle,并尝试一下。祝你练习Python伏都教好运!在
对不起,我很快就看了你的问题,让我提一下,因为我的答案中可能没有提到这个问题:如果文件名是__init__.py,它的作用与我之前提到的类似。它调用初始化,python将在到达该文件夹以供模块使用时立即执行这些操作。也就是说,如果因为调用了该文件而正在读取该文件,例如引用了一个模块文件夹,在这种情况下,您需要一个__init__.py文件来让python在该文件夹中识别它。您可以使用任何魔术方法作为名称,以便在使用时获得类似的功能。在
我希望澄清是有用的。在
-约瑟夫