日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python语法笔记(五)

發(fā)布時間:2023/11/29 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python语法笔记(五) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、python內(nèi)存管理?
(1)對象內(nèi)存使用?
&nsbp;&nsbp;&nsbp;&nsbp;在python中通過執(zhí)行內(nèi)建函數(shù) id(obj) 可以獲得對象obj在內(nèi)存中的地址。在python中,整數(shù)和短小的字符,python都會緩存這些對象,以便重復(fù)使用。當(dāng)我們創(chuàng)建多個等于1的引用時,實際上是讓所有這些引用指向同一個對象

a = 1 b = 1print(id(a)) print(id(b))

????python中,通過is關(guān)鍵字可以判斷兩個引用是否指向同一個對象,即 obj1 is obj2 <===> id(obj1) 是否等于 id(obj2)

# True a = 1 b = 1 print(a is b)# True a = "good" b = "good" print(a is b)# False a = "very good morning" b = "very good morning" print(a is b)# False a = [] b = [] print(a is b)由于Python緩存了整數(shù)和短字符串,因此每個對象只存有一份。比如,所有整數(shù)1的引用都指向同一對象。 即使使用賦值語句,也只是創(chuàng)造了新的引用, 而不是對象本身。長的字符串和其它對象可以有多個相同的對象,可以使用賦值語句創(chuàng)建出新的對象。

?

?


????在python中,每個對象都有存有指向該對象的引用總數(shù),即引用計數(shù)。通過sys包中的getrefcount()方法可以查看某個對象的引用計數(shù)。需要注意的是當(dāng)使用某個引用作為參數(shù),傳遞給getrefcount()時,參數(shù)實際上創(chuàng)建了一個臨時的引用。因此,getrefcount()所得到的結(jié)果,會比期望的多1。

from sys import getrefcounta = [1, 2, 3] print(getrefcount(a)) # 2b = a print(getrefcount(b)) #3

?

(2)對象引用對象?
????python的一個容器對象,比如列表、詞典等,可以包含多個對象。實際上,容器對象中包含的并不是元素對象本身,是指向各個元素對象的引用。?
也可以自己定義一個對象,中間引用其他的對象:

class from_obj(object):def __init__(self, to_obj):self.to_obj = to_objb = [1,2,3] a = from_obj(b) print(id(a.to_obj)) print(id(b))

?

(3)引用減少?
????某個對象的引用計數(shù)可能減少,比如,可以使用del關(guān)鍵字刪除某個引用:

from sys import getrefcounta = [1, 2, 3] b = a print(getrefcount(b)) #3del a #刪除了一個引用 print(getrefcount(b)) #2

?

del也可以用于刪除容器中的元素,比如:

a = [1,2,3]del a[0]print(a) #刪除a[0]引用,則a[0]指向的對象可能會被釋放(如果沒有其他引用指向它的話)

?

如果某個引用指向?qū)ο驛,當(dāng)這個引用被重新定向到某個其他對象B時,對象A的引用計數(shù)減少:

from sys import getrefcounta = [1, 2, 3]b = aprint(getrefcount(b))a = 1print(getrefcount(b))

?

(4)垃圾回收?
????python的內(nèi)存自動回收機(jī)制使得程序不需要自己釋放內(nèi)存。

2、python內(nèi)置函數(shù)?
????python內(nèi)置函數(shù)隨著python解釋器的運行而創(chuàng)建。在python程序中,你可以隨時調(diào)用這些函數(shù),不需要定義。常見的內(nèi)置函數(shù)如下:

print(), type(), dir(), help(), len(), open(), range(), enumerate(),zip(), iter(), map(), filter(), reduce(),

?

分類總結(jié):

數(shù)學(xué)運算abs(-5) # 取絕對值,也就是5round(2.6) # 四舍五入取整,也就是3.0pow(2, 3) # 相當(dāng)于2**3,如果是pow(2, 3, 5),相當(dāng)于2**3 % 5cmp(2.3, 3.2) # 比較兩個數(shù)的大小divmod(9,2) # 返回除法結(jié)果和余數(shù)max([1,5,2,9]) # 求最大值min([9,2,-4,2]) # 求最小值sum([2,-1,9,12]) # 求和類型轉(zhuǎn)換int("5") # 轉(zhuǎn)換為整數(shù) integerfloat(2) # 轉(zhuǎn)換為浮點數(shù) floatlong("23") # 轉(zhuǎn)換為長整數(shù) long integerstr(2.3) # 轉(zhuǎn)換為字符串 stringcomplex(3, 9) # 返回復(fù)數(shù) 3 + 9iord("A") # "A"字符對應(yīng)的數(shù)值chr(65) # 數(shù)值65對應(yīng)的字符unichr(65) # 數(shù)值65對應(yīng)的unicode字符bool(0) # 轉(zhuǎn)換為相應(yīng)的真假值,在Python中,0相當(dāng)于Falsebin(56) # 返回一個字符串,表示56的二進(jìn)制數(shù)hex(56) # 返回一個字符串,表示56的十六進(jìn)制數(shù)oct(56) # 返回一個字符串,表示56的八進(jìn)制數(shù)list((1,2,3)) # 轉(zhuǎn)換為表 listtuple([2,3,4]) # 轉(zhuǎn)換為定值表 tupleslice(5,2,-1) # 構(gòu)建下標(biāo)對象 slicedict(a=1,b="hello",c=[1,2,3]) # 構(gòu)建詞典 dictionary**粗體文本**序列操作all([True, 1, "hello!"]) # 是否所有的元素都相當(dāng)于True值any(["", 0, False, [], None]) # 是否有任意一個元素相當(dāng)于True值sorted([1,5,3]) # 返回正序的序列,也就是[1,3,5]reversed([1,5,3]) # 返回反序的序列,也就是[3,5,1]類,對象,屬性# define classclass Me(object):def test(self):print "Hello!"def new_test():print "New Hello!"me = Me()hasattr(me, "test") # 檢查me對象是否有test屬性getattr(me, "test") # 返回test屬性setattr(me, "test", new_test) # 將test屬性設(shè)置為new_testdelattr(me, "test") # 刪除test屬性isinstance(me, Me) # me對象是否為Me類生成的對象 (一個instance)issubclass(Me, object) # Me類是否為object類的子類編譯,執(zhí)行repr(me) # 返回對象的字符串表達(dá)compile("print('Hello')",'test.py','exec') # 編譯字符串成為code對象eval("1 + 1") # 解釋字符串表達(dá)式。參數(shù)也可以是compile()返回的code對象exec("print('Hello')") # 解釋并執(zhí)行字符串,print('Hello')。參數(shù)也可以是compile()返回的code對象其他input("Please input:") # 等待輸入globals() # 返回全局命名空間,比如全局變量名,全局函數(shù)名locals() # 返回局部命名空間

?

參考:

http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html

轉(zhuǎn)載于:https://www.cnblogs.com/gtarcoder/p/5028897.html

總結(jié)

以上是生活随笔為你收集整理的python语法笔记(五)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。