python中一切都是對(duì)象
在python中下列語句其實(shí)都是一個(gè)共同點(diǎn):
i=1
s="abcde"
deffoo():pass
classC(object):pass
instance=C()
l=[1,2]
t=(1,2)
他們?cè)趐ython解釋器中執(zhí)行的時(shí)候,都會(huì)在堆中新建了一個(gè)對(duì)象,然后把新建的對(duì)象綁定到變量名上。
i=1#新建一個(gè)PyIntObject對(duì)象,然后綁定到i上
s="abcde"#新建一個(gè)PyStringObject對(duì)象,綁定到s上
deffoo():pass#新建一個(gè)PyFunctionObject對(duì)象,綁定到foo上
classC(object):pass#新建一個(gè)類對(duì)象,綁定到C上
instance=C()#新建一個(gè)實(shí)例對(duì)象,綁定到instance上
l=[1,2]#新建一個(gè)PyListObject對(duì)象,綁定到l上
t=(1,2)#新建一個(gè)PyTupleObject對(duì)象,綁定到t上
第一類對(duì)象
第一類對(duì)象(英語:First-classobject)在計(jì)算機(jī)科學(xué)中指可以在執(zhí)行期創(chuàng)造并作為參數(shù)傳遞給其他函數(shù)或存入一個(gè)變量的實(shí)體。將一個(gè)實(shí)體變?yōu)榈谝活悓?duì)象的過程叫做“物件化”(Reification)。
第一類對(duì)象不一定是面向?qū)ο蟪绦蛟O(shè)計(jì)所指的物件,而可以指任何程序中的實(shí)體。一般第一類對(duì)象所特有的特性為:
可以被存入變量或其他結(jié)構(gòu)
可以被作為參數(shù)傳遞給其他函數(shù)
可以被作為函數(shù)的返回值
可以在執(zhí)行期創(chuàng)造,而無需完全在設(shè)計(jì)期全部寫出
即使沒有被系結(jié)至某一名稱,也可以存在
函數(shù)、類、模塊等所有對(duì)象都是第一類的,以函數(shù)作為第一類對(duì)象的為例:
#!/usr/bin/envPython
#coding=utf-8
'''
Createdon2017年8月11日
'''
deffoo(text):
returnlen(text)
#1.函數(shù)存入變量
f=foo
#2.函數(shù)作為參數(shù)
defshow(func):
size=func("python之禪")#等效于foo("Python之禪")
print("lengthofstringis:%s"%size)
#3.函數(shù)作為返回值
defnick():
returnfoo
show(f)
print(nick()("abc"))
#4.函數(shù)在執(zhí)行期創(chuàng)造
exec('''deffoo2():
print("haha")
foo2()''')
print(foo("12345"))
#5.沒有被系結(jié)至某一名稱的匿名函數(shù)lambda
print(map(lambdax:x*x,[1,2,3,4,5,6,7,8,9]))
以上內(nèi)容為大家介紹了python培訓(xùn)之字符串是對(duì)象嗎,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。