ronald627 发表于 2020-3-31 21:29:09

python中的下划线

小甲鱼的课程中单个下划线是私有属性 例如_name这种。但是在廖雪峰的课程里私有属性是双前下划线 例如__name


知乎上的文档也是单下划线,这个和版本有关系?

zltzlt 发表于 2020-3-31 21:31:27

单下划线开头表示这个属性是被保护的属性,双下划线开头表示这个属性是私有属性。

永恒的蓝色梦想 发表于 2020-3-31 21:33:39

双下划线的是私有属性
另有说法单下划线为保护属性,实际上单下划线不能起到保护作用,仅仅看程序员的个人操守{:10_327:}

hrp 发表于 2020-3-31 21:51:07

本帖最后由 hrp 于 2020-3-31 23:22 编辑

前单下划线是属于约定级别的,尊不遵守完全看程序员的意愿。前双下划线是解释器会对其属性名进行修改的,在外部用原属性名是访问不到的(不怎么严格,硬要访问还是有办法访问的)

一个账号 发表于 2020-3-31 22:20:32

永恒的蓝色梦想 发表于 2020-3-31 21:33
双下划线的是私有属性
另有说法单下划线为保护属性,实际上单下划线不能起到保护作用,仅仅看程序员的个人 ...

单下划线没啥用{:10_327:}

ronald627 发表于 2020-3-31 23:45:13

hrp 发表于 2020-3-31 21:51
前单下划线是属于约定级别的,尊不遵守完全看程序员的意愿。前双下划线是解释器会对其属性名进行修改的,在 ...

可以理解为单下划线是逗你玩,双下划线还稍微能保护点,但也不牢靠。可以这么想把。 。。

ronald627 发表于 2020-3-31 23:46:22

一个账号 发表于 2020-3-31 22:20
单下划线没啥用

。。。那跟着小甲鱼课程走一直用单下划线。。。还是改一下,私有属性用双下划线。但是小甲鱼这课程里面一直说的事单下划线外部不能访问啊。。。这是不是有歧义啊

永恒的蓝色梦想 发表于 2020-4-1 08:07:34

ronald627 发表于 2020-3-31 23:45
可以理解为单下划线是逗你玩,双下划线还稍微能保护点,但也不牢靠。可以这么想把。 。。

是的

_2_ 发表于 2020-4-1 08:55:32

ronald627 发表于 2020-3-31 23:45
可以理解为单下划线是逗你玩,双下划线还稍微能保护点,但也不牢靠。可以这么想把。 。。

这些都是写约定俗成的命名规则

ronald627 发表于 2020-4-3 11:15:58

_2_ 发表于 2020-4-1 08:55
这些都是写约定俗成的命名规则

理解,单下划线就是告诉其他程序员,这个属性、参数只是程序内部调用,但是如果真有人在外部调用也拦不住。双下划就是真的隐藏起来的了。这样理解是ok的把

_2_ 发表于 2020-4-3 11:23:50

ronald627 发表于 2020-4-3 11:15
理解,单下划线就是告诉其他程序员,这个属性、参数只是程序内部调用,但是如果真有人在外部调用也拦不住 ...

Python 没有绝对的隐藏,理论上所有定义的变量都是可以外部访问的,上面那些只是命名规则,用来告诉别人到底这个变量是干什么的
页: [1]
查看完整版本: python中的下划线