V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
simpleapples
V2EX  ›  Python

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

  •  
  •   simpleapples · 2018-04-03 18:08:11 +08:00 · 5060 次点击
    这是一个创建于 2186 天前的主题,其中的信息可能已经有所发展或是发生改变。
    写了一篇关于 Python 访问控制的文章,请各位大佬鉴定一下。
    https://juejin.im/post/5ac18d08f265da237b223d1a
    第 1 条附言  ·  2018-04-04 08:20:08 +08:00
    谢谢 v 站各位大佬指正
    话题本身确实比较基础,但是在面试中发现有很多候选人对这块了解的都比较少,所以写了篇文章
    接下来会尝试一下稍有深度的主题 ( •̀ ω •́ )
    23 条回复    2018-04-04 22:19:24 +08:00
    NoahNye
        1
    NoahNye  
       2018-04-03 20:19:33 +08:00 via iPhone
    学 py 的时候看过这段,严格来说 py 是没有私有的,通过下划线其实是提醒后来人谨慎使用该变量。
    u14e
        2
    u14e  
       2018-04-03 20:53:07 +08:00
    楼主要想搞个大新闻,还是找点有深度的主题吧!这东西任何一本入门书都有讲解
    chroming
        3
    chroming  
       2018-04-03 20:55:20 +08:00   ❤️ 1
    讲 py3 源码才能在 v 站立足
    codehole
        4
    codehole  
       2018-04-03 20:56:21 +08:00 via Android
    标题赞一个
    xpresslink
        5
    xpresslink  
       2018-04-03 23:07:55 +08:00
    谢谢楼主不辞辛苦跑来告诉大家母鸡是会下蛋的。
    只是哲学不同,我们都认为自己是成年人。
    xnth97
        6
    xnth97  
       2018-04-04 07:04:58 +08:00
    感谢 + 没有帮助(
    blless
        7
    blless  
       2018-04-04 08:34:20 +08:00 via Android
    这篇真的有点水了… python 不了解这个特性可以说是完全不会 python 吧…
    blless
        8
    blless  
       2018-04-04 08:35:14 +08:00 via Android
    真正访问控制应该是 @property
    wivwiv
        9
    wivwiv  
       2018-04-04 08:50:40 +08:00 via Android
    快出去走道里看看 看到墙上有火警报警按钮没,会不会误触?非要按能不能按下去?但是你应不应该按?
    lyroge
        10
    lyroge  
       2018-04-04 09:12:16 +08:00
    基础文章,还不错 ; ) 可以看看描述符之类
    nov
        11
    nov  
       2018-04-04 09:17:26 +08:00
    @xpresslink 只是哲学不同,我们都认为自己是成年人,这句话什么意思?
    gitgabige
        12
    gitgabige  
       2018-04-04 09:43:58 +08:00
    写得可以,之前一直把 python 当脚本来写的,面向对象没用过
    ericls
        13
    ericls  
       2018-04-04 09:45:43 +08:00
    everything is available at runtime
    scriptB0y
        14
    scriptB0y  
       2018-04-04 10:04:35 +08:00   ❤️ 1
    正确的访问控制应该使用 __getattr__ __setattr__

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

    Python 就没有这个问题,只要大家老老实实把魔术方法保留给 Python 语言。
    xpresslink
        15
    xpresslink  
       2018-04-04 10:07:45 +08:00
    @nov 和 9 楼一个意思。
    ahaxzh
        16
    ahaxzh  
       2018-04-04 10:10:26 +08:00
    配图用个 C++//
    GeruzoniAnsasu
        17
    GeruzoniAnsasu  
       2018-04-04 13:30:11 +08:00
    。。。。。。。。。。。任何一本 python 入门数都会讲的东西
    GeruzoniAnsasu
        18
    GeruzoniAnsasu  
       2018-04-04 13:30:45 +08:00
    如果对这个都不了解换我我可能直接拒了
    aa825aa
        19
    aa825aa  
       2018-04-04 14:34:11 +08:00
    1、_xxx 不能用于’ from module import *’ 以单下划线开头的表示的是 protected 类型的变量。即保护类型只能允许其本身与子类进行访问。
    2、__xxx 双下划线的表示的是私有类型的变量。只能是允许这个类本身进行访问了。连子类也不可以
    aa825aa
        20
    aa825aa  
       2018-04-04 14:35:33 +08:00
    """是一种约定的规范,而不是语言层面真的实现了访问控制...""" lz 搞笑吗
    simpleapples
        21
    simpleapples  
    OP
       2018-04-04 15:06:17 +08:00
    @aa825aa 这句话有什么问题吗?
    junnplus
        22
    junnplus  
       2018-04-04 17:47:49 +08:00
    这怕是不能谈笑风生吧
    qsnow6
        23
    qsnow6  
       2018-04-04 22:19:24 +08:00
    水到不行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3164 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:02 · PVG 21:02 · LAX 06:02 · JFK 09:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.