python类成员_Python的类成员和对象成员
Python中有個(gè)類(lèi)成員的概念,絕對(duì)是困擾新手的問(wèn)題。看看下面的代碼就知道兩者的區(qū)別了。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
from datetime import datetime
class Worker:
def working(self):
print self
for i in xrange(3):
print datetime.now().strftime('%H:%M:%S')
time.sleep(1)
class Bundle:
_worker = None
name = ''
def __init__(self, name = ''):
self.name = name
@property
def worker(self):
if self._worker is None:
#兩個(gè)不同worker對(duì)象
self._worker = Worker()
#同一個(gè)worker對(duì)象,但如果是不同進(jìn)程的worker對(duì)象肯定不同
#self.__class__._worker = Worker()
return self._worker
def run(self):
print self.name
self.worker.working()
if __name__ == '__main__':
b1, b2 = Bundle('b1'), Bundle('b2')
b1.run()
b2.run()
為什么要弄出個(gè)怪異的類(lèi)成員,記得Python中一切都是對(duì)象嗎,類(lèi)和函數(shù)也是對(duì)象。Python創(chuàng)建對(duì)象時(shí),是用的和IoLang一樣的原型設(shè)計(jì)模式,將類(lèi)對(duì)應(yīng)復(fù)制一份,再在其基礎(chǔ)上修改得到對(duì)象;和Java的基于類(lèi)模板創(chuàng)建對(duì)象的方式有些不同,所以Python的__init__()叫做初始化方法,而不是構(gòu)造函數(shù),它控制的就是剛才所說(shuō)修改這部分行為。
總結(jié)
以上是生活随笔為你收集整理的python类成员_Python的类成员和对象成员的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hive 行转列和列转行的方法_读离线和
- 下一篇: pip安装ipython_Python