zoukankan      html  css  js  c++  java
  • python单/双下划线使用

    在Python编程中经常会遇到函数(function),方法(method)及属性(attribute)以下划线'_'作为前缀,这里做个总结。

    主要存在四种情形:
    1 1. object # public
    2 2. __object__ # special, python system use, user should not define like it
    3 3. __object # private (name mangling during runtime)
    4 4. _object # obey python coding convention, consider it as private
    1和2两种情形比较容易理解,不多做解释,最迷惑人的就是3和4情形。
    在解释3和4情形前,首先了解下python有关private的描述,python中不存在protected的概念,要么是public要么就是private,但是python中的private不像C++, Java那样,它并不是真正意义上的private,通过name mangling(名称改编,下面例子说明)机制就可以访问private了。
     1 class Foo():
     2     def __init__():
     3         ... 
     4     def public_method():
     5         print 'This is public method'
     6     def __fullprivate_method():
     7         print 'This is double underscore leading method'
     8     def _halfprivate_method():
     9         print 'This is one underscore leading method'
    10 
    11 f = Foo()
    12 f.public_method() # OK
    13 f.__fullprivate_method() # Error occur
    14 f._halfprivate_method() # OK

    上文已经说明了,python中并没有真正意义的private,见以下方法便能够访问__fullprivate_method()

      

  • 相关阅读:
    WSP_mainActivity
    使用Xutils(HttpUtils)请求网络数据
    ScrollView横向滑动与fragment的联动
    侧滑菜单
    Pull解析xml文件
    Xlistview的应用1(上拉刷新,下拉加载)fragment
    XlistView4(脚部刷新)
    XlistView3(头部的代码)
    GCD队列组的使用
    GCD栅栏函数dispatch_barrier
  • 原文地址:https://www.cnblogs.com/chris-cp/p/6025934.html
Copyright © 2011-2022 走看看