• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

竹千代

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

_x、__x、__x__含义与区别

_x是一种弱表示,它用在类中的属性或方法,表示是private属性,希望外部使用者不要直接调用它。但它只是暗示,没有任何限制性措施。

private属性主要推荐的还是这种方式,因为Python的设计理念有一条 “We are all adults here”

 

__x是会被实现时,会被替换_A__x形式。它主要作用有

  1. 用在父类的函数,防止被子类覆盖
  2. 用来做private属性(不推荐)
class A(object):
    def __method(self):
        print "I'm a method in A"
    
    def method(self):
        self.__method()


class B(A):
    def __method(self):
        print "I'm a method in B"

b = B()
b.method()


$ python example.py
I'm a method in A     # 在父类调用self.__method,其实是调用self._A__method

 

 

__x__是表示由python自己调用,不是给程序员调用的。比如各种魔方方法。

 

可参考: http://stackoverflow.com/questions/6930144/underscore-vs-double-underscore-with-variables-and-methods

posted on 2015-09-07 12:00  竹千代  阅读(1406)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3