作者zcyee (野战口粮)
看板Python
标题[问题] 为什麽有些写法会在前面或後面加底线
时间Fri Oct 27 15:20:54 2017
像是
def _init_(self,data.file)
def _factorize(self,data)
或是
self.dataframe[k], _ = pd.factorize(self.dataframe[k])
看很多范例都有。 不太了解什麽意思
谢谢各位解答
-----
Sent from JPTT on my iPhone
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.136.218
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1509088857.A.D85.html
1F:推 m87dd05: 最近也在研究python 的继承,我的理解是双底线不可被继承 10/27 15:35
2F:→ mikapauli: 前面加单底线的名称不会被from ... import * 汇入 10/27 17:37
3F:→ mikapauli: 楼上说的class里前面加双底线的名称会被改名 10/27 17:39
4F:→ mikapauli: 前後都加双底线的命名有内建名称的意义 10/27 17:41
5F:→ mikapauli: 单独的单底线idle里预设为上个运算的结果,有时会被用 10/27 17:43
6F:→ mikapauli: 作dummy。我是习惯用双底线 10/27 17:43
7F:→ mikapauli: 後单底线是有些人遇到命名冲突又想不到其他名称时用的 10/27 17:48
8F:→ darkgerm: 双底线不是不能被继承,而是继承後名字会被改掉 10/27 23:31
9F:→ darkgerm: 防止撞名用的,这个机制叫 name mangling 10/27 23:32
10F:→ TitanEric: 可以搜寻dunder 还有你第二个例子不属於推文讨论的 只 10/28 00:19
11F:→ TitanEric: 是function单纯回传2个值 但第二个对你来说不重要 所以 10/28 00:19
12F:→ TitanEric: 才用底线 10/28 00:19
13F:→ brightwish: 有底线的就相当於c的private python 会自动防止错误的 10/28 02:17
14F:→ brightwish: 呼叫 另外前後都有底线则是类别内建的方法 10/28 02:17