python中一切都是對象
在python中下列語句其實都是一個共同點:
i=1
s="abcde"
deffoo():pass
classC(object):pass
instance=C()
l=[1,2]
t=(1,2)
他們在python解釋器中執(zhí)行的時候,都會在堆中新建了一個對象,然后把新建的對象綁定到變量名上。
i=1#新建一個PyIntObject對象,然后綁定到i上
s="abcde"#新建一個PyStringObject對象,綁定到s上
deffoo():pass#新建一個PyFunctionObject對象,綁定到foo上
classC(object):pass#新建一個類對象,綁定到C上
instance=C()#新建一個實例對象,綁定到instance上
l=[1,2]#新建一個PyListObject對象,綁定到l上
t=(1,2)#新建一個PyTupleObject對象,綁定到t上
第一類對象
第一類對象(英語:First-classobject)在計算機科學中指可以在執(zhí)行期創(chuàng)造并作為參數(shù)傳遞給其他函數(shù)或存入一個變量的實體。將一個實體變?yōu)榈谝活悓ο蟮倪^程叫做“物件化”(Reification)。
第一類對象不一定是面向?qū)ο蟪绦蛟O計所指的物件,而可以指任何程序中的實體。一般第一類對象所特有的特性為:
可以被存入變量或其他結(jié)構
可以被作為參數(shù)傳遞給其他函數(shù)
可以被作為函數(shù)的返回值
可以在執(zhí)行期創(chuàng)造,而無需完全在設計期全部寫出
即使沒有被系結(jié)至某一名稱,也可以存在
函數(shù)、類、模塊等所有對象都是第一類的,以函數(shù)作為第一類對象的為例:
#!/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培訓之字符串是對象嗎,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。