這兩天看完了一些例子
感覺對(duì)這句話有了更深刻的理解
在python中娱颊,一切皆對(duì)象傲诵。數(shù)字、字符串箱硕、元組拴竹、列表、字典剧罩、函數(shù)栓拜、方法、類惠昔、模塊等等都是對(duì)象幕与,包括你的代碼。
Python 中的一切都可以賦值給變量或者作為參數(shù)傳遞給函數(shù)镇防。
Python 的所有對(duì)象都有三個(gè)特性:
- 身份:每個(gè)對(duì)象都有一個(gè)唯一的身份標(biāo)識(shí)自己啦鸣,任何對(duì)象的身份都可以使用內(nèi)建函數(shù) id() 來得到,可以簡單的認(rèn)為這個(gè)值是該對(duì)象的內(nèi)存地址来氧。
>>> a = 1
>>> id(a)
>>> 26188904 # 身份由這樣一串類似的數(shù)字表示
- 類型:對(duì)象的類型決定了對(duì)象可以保存什么類型的值诫给,有哪些屬性和方法,可以進(jìn)行哪些操作啦扬,遵循怎樣的規(guī)則中狂。可以使用內(nèi)建函數(shù) type() 來查看對(duì)象的類型扑毡。
>>> type(a)
<type 'int'>
>>> type(type)
<type 'type'> #萬物皆對(duì)象吃型,type 也是一種特殊的對(duì)象 type
- 值:對(duì)象所表示的數(shù)據(jù)
>>> a
1
"身份"、"類型"和"值"在所有對(duì)象創(chuàng)建時(shí)被賦值僚楞。如果對(duì)象支持更新操作勤晚,則它的值是可變的,否則為只讀(數(shù)字泉褐、字符串赐写、元組等均不可變)。只要對(duì)象還存在膜赃,這三個(gè)特性就一直存在挺邀。
對(duì)象的屬性:大部分 Python 對(duì)象有屬性、值或方法跳座,使用句點(diǎn)(.)標(biāo)記法來訪問屬性端铛。最常見的屬性是函數(shù)和方法,一些 Python 對(duì)象也有數(shù)據(jù)屬性疲眷,如:類禾蚕、模塊、文件等
所以在學(xué)習(xí)多線程多進(jìn)程的時(shí)候狂丝,我們要想實(shí)現(xiàn)多線程的功能换淆,只要在導(dǎo)入模塊之后哗总,直接創(chuàng)建一個(gè)相關(guān)的對(duì)象的就可以了。所有實(shí)現(xiàn)該功能的方法倍试,都已經(jīng)被封裝好了讯屈。
比如
#啟動(dòng)多進(jìn)程的方法
from multiprocessing import Process
import os
#子進(jìn)程要執(zhí)行的代碼
def run_proc(name):
print("run child process %s(%s)"%(name,os.getpid()))
if __name__ == '__main__':
print("parent process %s"%(os.getpid()))
p = Process(target=run_proc,args=('test',))
print('child process will start')
#啟動(dòng)多進(jìn)程
p.start()
#多進(jìn)程間的同步
p.join()
print("child process is end")
其實(shí)建立多進(jìn)程主要就是從
p = Process(target=run_proc,args=('test',))
開始的。就是從我們導(dǎo)入好的process模塊县习,創(chuàng)建了一個(gè)新的對(duì)象涮母,然后就可以通過.調(diào)用所有屬于它的方法。