_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

_x、__x、__x__含义与区别的更多相关文章

  1. (转载)Android xml资源文件中@、@android:type、@*、?、@+引用写法含义以及区别

    原帖地址:http://blog.csdn.net/zfrong/article/details/7332545 Android xml资源文件中@.@android:type.@*.?.@+引用写法 ...

  2. Rest模式get,put,post,delete含义与区别(转)

    POST   /uri     创建 DELETE /uri/xxx 删除 PUT    /uri/xxx 更新或创建 GET    /uri/xxx 查看 GET操作是安全的.所谓安全是指不管进行多 ...

  3. Rest模式get,put,post,delete含义与区别

    POST   /uri     创建   DELETE /uri/xxx 删除    PUT    /uri/xxx 更新或创建   GET    /uri/xxx 查看   GET操作是安全的.所谓 ...

  4. Android xml资源文件中@、@android:type、@*、?、@+含义和区别

    一.@代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@andr ...

  5. PV UV IP含义及区别

    --------首先来看看ip.uv和pv的定义---------- PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次. UV(独立访客):即Unique Vis ...

  6. JS中apply与call的含义与区别

    JavaScript中,apply()与call()的含义一样,均为改变调用函数中的this指向.其中apply()与call()的第一个参数表示所要指向的对象,若调用函数无参数可不写,则默认为win ...

  7. get、put、post、delete含义与区别

    1.GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改.增加数据,不会影响资源的内容,即该请求不会产生副作用.无论进行多少次操 ...

  8. JAVA Override和Overload的含义去区别

    java中的继承,方法覆盖(重写)override与方法的重载overload的区别 1.方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现,重写(Overr ...

  9. .call() 和 .apply() 的含义和区别

    JavaScript中apply与call的用法意义及区别 apply()与call()的区别 javascript中apply和call方法的作用及区别说明 .apply()用法和call()的区别 ...

随机推荐

  1. BigDecimal类型比较大小

    这个类是java里精确计算的类 1 比较对象是否相等     一般的对象用equals,但是BigDecimal比较特殊,举个例子:     BigDecimal a=BigDecimal.value ...

  2. hdu 5755(高斯消元——模线性方程组模板)

    PS. 看了大神的题解,发现确实可以用m个未知数的高斯消元做.因为确定了第一行的情况,之后所有行的情况都可以根据第一行推. 这样复杂度直接变成O(m*m*m) 知道了是高斯消元后,其实只要稍加处理,就 ...

  3. double 逆序

    请设计一个函数,不许用到字符串函数,用数学运算,将double类型数据转换,例如123.456转换成654.321 int _tmain(int argc, _TCHAR* argv[]) { con ...

  4. 工作流学习——Activiti整体认识二步曲 (zhuan)

    http://blog.csdn.net/zwk626542417/article/details/46594505 ***************************************** ...

  5. velocity基础教程--1.标准使用(zhuan)

    http://llying.iteye.com/blog/387253 **************************** velocity是一个非常好用的模板引擎 这里不对项目进行详细介绍,可 ...

  6. aliyun CentOS6.5 上 svn 安装笔记

    为了方便管理自己的一些学习资料.总结等,在CentOS6.5上安装SVN,记录过程如下: 1.1  安装方式  独立服务器  fsfs SVN服务器有2种运行方式:独立安装.SVN+Apache.独立 ...

  7. Kafka消息保证不丢失和重复消费问题

    使用同步模式的时候,有3种状态保证消息被安全生产,在配置为1(只保证写入leader成功)的话,如果刚好leader partition挂了,数据就会丢失.还有一种情况可能会丢失消息,就是使用异步模式 ...

  8. 腾讯云centos 7部署 dotnetcore+Angular2 实践

    版权声明:本文由屈政斌原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/239 来源:腾云阁 https://www.qclo ...

  9. Android 使用dagger2进行依赖注入(基础篇)

    0. 前言 Dagger2是首个使用生成代码实现完整依赖注入的框架,极大减少了使用者的编码负担,本文主要介绍如何使用dagger2进行依赖注入.如果你不还不了解依赖注入,请看这一篇. 1. 简单的依赖 ...

  10. 周爱民-javascript

    从纯化的语言中了解到语言的本质:并以混杂的语言来创造我们的世界,.   程序=算法+结构,动静之间,不变的是本质   了解语言的本质,而不是试图学会一门语言.   本书从语言特性出发,把动态静态.函数 ...