Python 中的_run_init 函数也是在实例创建时自动执行的吗?和__init__有什么区别

2018-01-17 19:28:33 +08:00
 wecan
例如下面的代码当中有一个__run_init:

https://gist.github.com/realwecan/2a30885f3adf84064fe0b82ae0e09ae0
2778 次点击
所在节点    Python
4 条回复
xpresslink
2018-01-17 22:07:04 +08:00
_run_init 这个写法只是普通方法,不会自动执行。
beforeuwait
2018-01-17 22:41:06 +08:00
这我还真不知道
ipwx
2018-01-17 23:31:44 +08:00
看看基类是不是重载了 __new__ 或者有 metaclass
XIVN1987
2018-01-18 09:06:17 +08:00
是_run_init,不是__run_init

首尾各有两个下划线的是 magic method,有特殊用途的,在特定条件下自动调用,,比如__init__、__str__、__repr__、__eq__等

一个下划线一般表示 private 变量、方法,当然,它并没有真的变成 private,只是一种社区的约定俗成,,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/423730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX