python 学习(一)-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 28169
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 55
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-11 22:55
个人简介

do what you love

文章分类

全部博文(6)

文章存档

2014年(6)

我的朋友
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: python/ruby

2014-05-09 16:46:00

看个例子:
class a(object):
       def __init__(self):
              self.__private()
              self.public()
       def __private(self):
              print 'a.__private()'
       def public(self):
              print 'a.public()'
class b(a):
       def __private(self):
              print 'b.__private()'
       def public(self):
              print 'b.public()'
b = b()
初探
正确的答案是:
a.__private()
b.public()

>>> print '/n'.join(dir(a))
b.public()
_a__private
__init__            
public
>>> print '/n'.join(dir(b))
_a__private
_b__private
__init__
public

私有变量会在代码生成之前被转换为长格式(变为公有)。转换机制是这样的:在变量前端插入类名,再在前端加入一个下划线字符。这就是所谓的私有变量轧压(private name mangling)。如类a里的__private标识符将被转换为_a__private,这就是上一节出现_a__private和__private消失的原因了。

阅读(1351) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图