zltzlt 发表于 2020-7-17 18:24:41

Python FAQ 035 __init__ 方法没起作用

Python FAQ 035 __init__ 方法没起作用

问题

为什么实例化类的时候没有自动调用 __init__ 方法呢?

>>> class A:
      def _init_(self):
                print('我是小 a')

               
>>> a = A()    # 什么也没打印

解答

__init__ 前后需要双下划线,而代码中前后只有一个下划线,加上就没问题了。

>>> class A:
      def __init__(self):
                print('我是小 a')

               
>>> a = A()
我是小 a

_2_ 发表于 2020-7-17 20:16:52

为何不考虑一下不加下划线(def init(self, ...))的情况?

zltzlt 发表于 2020-7-17 20:19:41

_2_ 发表于 2020-7-17 20:16
为何不考虑一下不加下划线(def init(self, ...))的情况?

不加下划线这种错误很少人会犯

_2_ 发表于 2020-7-17 20:20:49

zltzlt 发表于 2020-7-17 20:19
不加下划线这种错误很少人会犯

我犯过{:10_266:}刚开始学类的时候
后来再也忘记不了了= =

zltzlt 发表于 2020-7-17 20:22:30

_2_ 发表于 2020-7-17 20:20
我犯过刚开始学类的时候
后来再也忘记不了了= =

{:10_250:}估计是没看清方法名就动手了

_2_ 发表于 2020-7-17 20:23:41

zltzlt 发表于 2020-7-17 20:22
估计是没看清方法名就动手了

……{:10_266:}
回想起来那时的我又傻又{:10_245:}

革命年 发表于 2020-7-27 09:08:38

zltzlt 发表于 2020-7-17 20:19
不加下划线这种错误很少人会犯

构造函数的前面和后面都有加两个下划线,你只加了一个,系统当然会把这个理解为你自己定义的函数,而不是构造函数
页: [1]
查看完整版本: Python FAQ 035 __init__ 方法没起作用