首页 > 其他 > 详细

第二发

时间:2015-11-03 17:36:49      阅读:243      评论:0      收藏:0      [点我收藏+]
#OO继承了object
class
OO(object): #重构了new函数,单例模式,*args,**kwargs先不用理解 def __new__(self,*args,**kwargs): if not "_instance" in vars(cls): cls._instance = super(Singlegton1,*args,**kwargs) return cls._instance def __init__(self,*args,**kwargs): pass #把类可以当函数用。例如OO() def __call__(self,*args,**kwargs): pass #先调用new,然后调用init o = OO() #调用call函数 o("a","b")

①:python是动态语言可以随意添加绑定数据,例:o.cc = "12"
但是动态绑定的数据只在当前实例中有,例:
a = OO()
b=OO()
a.name = "gaga"
print b.name#报错

②:self相当于this,指向的是实例自身,比如o("a","b")就把自身传到函数call中

③:如果属性不被外部访问,可以在属性名前加上__,就变成了一个私有属性(python解释器把变量变成了_类名__name,但是不同版本的解释器可能会吧__name解释成不同的名字,没有通过技术手段屏蔽,约定俗成吧)。但是如果属性名后面再加上__,就变成了公共属性。例:__name是私有属性,__name__是共有属性

第二发

原文:http://www.cnblogs.com/say-one-say/p/4933767.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!