在Python脚本中调用_uinit__uu时,会显示一行重复的代码

在Python脚本中调用_uinit__uu时,会显示一行重复的代码,python,function,class,object,Python,Function,Class,Object,在Python中调用类时,我看到了一个非常奇怪的现象: 我想在屏幕上看到“现在创建基地”。然而,我看到了两条完全相同的线。这对我来说很奇怪 class Base(object): def __init__(self): print "Base created now" test1=Base() test1.__init__() 屏幕上的结果是: Base created now Base created now Base created now 所以我做了另一个实

在Python中调用类时,我看到了一个非常奇怪的现象: 我想在屏幕上看到“现在创建基地”。然而,我看到了两条完全相同的线。这对我来说很奇怪

class Base(object):
    def __init__(self):
        print "Base created now"

test1=Base()
test1.__init__()
屏幕上的结果是:

Base created now
Base created now
Base created now
所以我做了另一个实验:我将“init”改为“print_test”:

屏幕上的结果是:

Base created now
Base created now
Base created now
你知道为什么第一个剧本有两行,而第二个剧本只有一行吗?谢谢

\uuuu init\uuuu()
是您的构造函数方法,创建新实例时总是调用它

class Base(object):
    def __init__(self):
        print "Base created now"

test1=Base()   # this creates a new instance and calls __init__()

谢谢我可以把它解释为:init是一个特殊函数。每当我创建一个新实例并调用这个init函数时,它就会自动“复制”这个函数中的所有内容。我说的对吗?几乎在所有情况下,你都不会自己调用
\uuuu init\uuuu()
。谢谢。为了避免屏幕上出现不必要的转储消息,我更改了“init”内容:删除了“print”操作,并在其中添加了一些虚拟(冗余)内容。然后我编写了另一个新函数,与“init”并行,这是一个打印函数。现在如果我调用新的打印函数,它在屏幕上只有一行。太好了!:)