_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

时间: 2024-10-29 00:20:46

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

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

原帖地址:http://blog.csdn.net/zfrong/article/details/7332545 Android xml资源文件中@.@android:type.@*.?.@+引用写法含义以及区别 一[email protected]代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@android:type/name android:textColor=&

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

一[email protected]代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@android:type/name android:textColor="@android:color/opaque_red" 注意:其实@android:type/name是@[package:]type/name 的一个子类 二[email protected]*

详解B2B、B2C、C2B、C2C、O2O的含义及区别

相信有很多人对P2P.P2C .O2O .B2C.B2B. C2C不是很熟悉,甚至是云里雾里,每天看着这些常见又陌生的名词,如果有人跟你说让你解 释它的含义,金融的小伙伴们是不是瞬间石化了,尤其是做淘宝.微商的同志,是不是欲言又止了,哑口无言了?它的概念意义你真的懂吗?来吧,跟着小编一起来 真正的了解下它们的含义和区别吧!文章有点长,请大家耐心看完. P2P.P2C .O2O .B2C.B2B. C2C的概念解析: P2P到底是什么呢? P2P借贷是一种将非常小额度的资金聚集起来借贷给有资金需求

JS中apply()与call()的含义与区别

JavaScript中,apply()与call()的含义一样,均为改变调用函数中的this指向.其中apply()与call()的第一个参数表示所要指向的对象,若调用函数无参数可不写,则默认为window.第一个参数后的参数表示调用函数的参数,其中apply()第一个参数后面的参数为一个数组,call()第一个参数后面为0或多个参数. 例: 1 window.x = 100; 2 3 4 var obj = {}; 5 obj.x = 1; 6 obj.test = function(a) {

shell 1>&2 2>&1 &>filename重定向的含义和区别

在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 0 是一个文件描述符,表示标准输入(stdin)1 是一个文件描述符,表示标准输出(stdout) 2 是一个文件描述符,表示标准错误(stderr) 在标准情况下, 这些FD分别跟如下设备关联: stdin(0): keyboard 键盘输入,并返回在前端 stdout(1): monitor 正确返回值 输出到前端 stderr(2): monitor 错误返回值 输出到前端 举栗说明吧:

架构、框架、模式、模块、组件、插件、控件、中间件的含义和区别

架构.框架.模式.模块.组件.插件.控件.中间件的含义和区别.经常看到这些概念,但是有些含糊,花点儿功夫整理一下,结果还是有些地方理解的不透彻,先将整理的内容写下来,以供交流.左侧英文栏中有些单词被分成了两半,放到了两行中,看的时候需要注意.欢迎各路大虾.大牛.大神拍砖警醒,油锤灌顶~~~ 术语 英文解释 中文解释 软件架构 architecture:Architecture is the art of planning, designing, and constructing building

DML和DDL含义和区别-一定要搞明白

一.DML与DDL的含义: 1.DML(Data Manipulation Language)数据操作语言-数据库的基本操作,SQL中处理数据等操作统称为数据操纵语言,简而言之就是实现了基本的"增删改查"操作.包括的关键字有:select.update.delete.insert.merge 2.DDL(Data Definition Language)数据定义语言-用于定义和管理 SQL 数据库中的所有对象的语言,对数据库中的某些对象(例如,database,table)进行管理.包

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

POST   /uri     创建 DELETE /uri/xxx 删除 PUT    /uri/xxx 更新或创建 GET    /uri/xxx 查看 GET操作是安全的.所谓安全是指不管进行多少次操作,资源的状态都不会改变.比如我用GET浏览文章,不管浏览多少次,那篇文章还在那,没有变化.当然,你可能说每浏览一次文章,文章的浏览数就加一,这不也改变了资源的状态么? 这并不矛盾,因为这个改变不是GET操作引起的,而是用户自己设定的服务端逻辑造成的. PUT,DELETE操作是幂等的.所谓幂

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

POST   /uri     创建   DELETE /uri/xxx 删除    PUT    /uri/xxx 更新或创建   GET    /uri/xxx 查看   GET操作是安全的.所谓安全是指不管进行多少次操作,资源的状态都不会改变.比如我用GET浏览文章,不管浏览多少次,那篇文章还在那,没有变化.当然,你可能说每浏览一次文章,文章的浏览数就加一,这不也改变了资源的状态么?这并不矛盾,因为这个改变不是GET操作引起的,而是用户自己设定的服务端逻辑造成的. PUT,DELETE操作