与面试官谈笑风生 | Python 面向对象之访问控制

2018 年 4 月 3 日
 simpleapples
写了一篇关于 Python 访问控制的文章,请各位大佬鉴定一下。
https://juejin.im/post/5ac18d08f265da237b223d1a
6150 次点击
所在节点    Python
23 条回复
NoahNye
2018 年 4 月 3 日
学 py 的时候看过这段,严格来说 py 是没有私有的,通过下划线其实是提醒后来人谨慎使用该变量。
u14e
2018 年 4 月 3 日
楼主要想搞个大新闻,还是找点有深度的主题吧!这东西任何一本入门书都有讲解
chroming
2018 年 4 月 3 日
讲 py3 源码才能在 v 站立足
codehole
2018 年 4 月 3 日
标题赞一个
xpresslink
2018 年 4 月 3 日
谢谢楼主不辞辛苦跑来告诉大家母鸡是会下蛋的。
只是哲学不同,我们都认为自己是成年人。
xnth97
2018 年 4 月 4 日
感谢 + 没有帮助(
blless
2018 年 4 月 4 日
这篇真的有点水了… python 不了解这个特性可以说是完全不会 python 吧…
blless
2018 年 4 月 4 日
真正访问控制应该是 @property
wivwiv
2018 年 4 月 4 日
快出去走道里看看 看到墙上有火警报警按钮没,会不会误触?非要按能不能按下去?但是你应不应该按?
lyroge
2018 年 4 月 4 日
基础文章,还不错 ; ) 可以看看描述符之类
nov
2018 年 4 月 4 日
@xpresslink 只是哲学不同,我们都认为自己是成年人,这句话什么意思?
gitgabige
2018 年 4 月 4 日
写得可以,之前一直把 python 当脚本来写的,面向对象没用过
ericls
2018 年 4 月 4 日
everything is available at runtime
scriptB0y
2018 年 4 月 4 日
正确的访问控制应该使用 __getattr__ __setattr__

自定义的方法或变量在任何时候都不应该使用 __foo__ 的形式。js 社区前短时间好像在争执 Array.prototype.flatten 的方法问题,因为和有个库定义了 flatten,js 如果加入这个的话会冲突。所以有人提议我们用 smoosh (笑)

Python 就没有这个问题,只要大家老老实实把魔术方法保留给 Python 语言。
xpresslink
2018 年 4 月 4 日
@nov 和 9 楼一个意思。
ahaxzh
2018 年 4 月 4 日
配图用个 C++//
GeruzoniAnsasu
2018 年 4 月 4 日
。。。。。。。。。。。任何一本 python 入门数都会讲的东西
GeruzoniAnsasu
2018 年 4 月 4 日
如果对这个都不了解换我我可能直接拒了
aa825aa
2018 年 4 月 4 日
1、_xxx 不能用于’ from module import *’ 以单下划线开头的表示的是 protected 类型的变量。即保护类型只能允许其本身与子类进行访问。
2、__xxx 双下划线的表示的是私有类型的变量。只能是允许这个类本身进行访问了。连子类也不可以
aa825aa
2018 年 4 月 4 日
"""是一种约定的规范,而不是语言层面真的实现了访问控制...""" lz 搞笑吗

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

https://study.congcong.us/t/444031

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

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

© 2021 V2EX