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

歡迎訪問 生活随笔!

生活随笔

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

python

Python对象注意点

發(fā)布時(shí)間:2025/3/21 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python对象注意点 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 私有實(shí)現(xiàn)
      • name mangling 名字改編,名字重整實(shí)現(xiàn)私有(在變量名前面加兩個(gè)下劃線即可實(shí)現(xiàn))
      • 碼農(nóng)實(shí)現(xiàn)私有
      • python內(nèi)部實(shí)現(xiàn)私有措施
      • 上述例子訪問:
    • 類,類對(duì)象和實(shí)例對(duì)象
      • 解釋:
    • 屬性和方法名相同,進(jìn)行覆蓋操作
    • self參與有無區(qū)別:
      • 無self
    • 綁定

私有實(shí)現(xiàn)

name mangling 名字改編,名字重整實(shí)現(xiàn)私有(在變量名前面加兩個(gè)下劃線即可實(shí)現(xiàn))

class Name:__name="瑞彪"def getname(self):return self.__namename=Name() print(name.getname())print(name._Name__name)#_類名__變量名

碼農(nóng)實(shí)現(xiàn)私有

只需要在變量前面加兩下劃線就行

python內(nèi)部實(shí)現(xiàn)私有措施

解釋:python實(shí)現(xiàn)私有,就直接把變量名直接修改,變量名未知,那么就沒法進(jìn)行訪問。name mangling措施類變量修改后為_類名__變量名

上述例子訪問:

print(name._Name__name)

print(name.__name)

類,類對(duì)象和實(shí)例對(duì)象

class C:count=0 a=C() b=C() a.count+=10 C.count+=100 print(a.count) print(b.count)

解釋:

當(dāng)這里進(jìn)行實(shí)例對(duì)象的改變后,就把原來對(duì)象進(jìn)行覆蓋處理,所以類對(duì)象+100這個(gè)操作,在實(shí)例對(duì)象上面并未進(jìn)行

類中定義的屬性都是靜態(tài)屬性

屬性和方法名相同,進(jìn)行覆蓋操作

class C:def x(self):print("X-man") c=C() c.x() C.x=1 c.x()

self參與有無區(qū)別:

無self

class C:def printC():print("no zuo no die") C.printC() cc=C() cc.printC()


C.printC()執(zhí)行成功這個(gè)不用解釋了,cc.printC()執(zhí)行報(bào)錯(cuò),是因?yàn)閷?shí)例對(duì)象進(jìn)行調(diào)用函數(shù)的時(shí)候,會(huì)默認(rèn)傳入一個(gè)對(duì)象參數(shù),相當(dāng)于這樣cc.printC(cc),但是對(duì)象函數(shù)里面形參為空,參數(shù)無法對(duì)應(yīng)

class C:def printC(self):print("no zuo no die") cc=C() cc.printC() C.printC()


加進(jìn)self形參后,那么就實(shí)例對(duì)象調(diào)用就可以成功,但是類對(duì)象調(diào)用函數(shù)就沒法成功,因?yàn)轭悓?duì)象調(diào)用函數(shù)不會(huì)自動(dòng)傳參,在實(shí)參里面假如一個(gè)cc或者C就可以了

綁定

class CC():def setXy(self,x,y):self.x=xself.y=ydef print(self):print(self.x,self.y) dd=CC() print(dd.__dict__) print(CC.__dict__) dd.setXy(5,6) print(dd.__dict__)


用__dict__查看對(duì)象所擁有的屬性,因?yàn)閷?shí)例對(duì)象并未進(jìn)行任何操作,所以查看實(shí)例對(duì)象屬性為空,但是類對(duì)象的話,里面包含很多東西,比如setXy方法,print方法,都是我們自定義的

{'__module__': '__main__', 'setXy': <function CC.setXy at 0x00000216A550C5E8>, 'print': <function CC.print at 0x00000216A550C828>, '__dict__': <attribute '__dict__' of 'CC' objects>, '__weakref__': <attribute '__weakref__' of 'CC' objects>, '__doc__': None}

當(dāng)我們進(jìn)行實(shí)例對(duì)象的屬性初始化后,再來進(jìn)行查看實(shí)例對(duì)象所擁有的屬性,然后就變成了這樣:

{'x': 5, 'y': 6}

這兩個(gè)屬性僅屬于實(shí)例對(duì)象,和類對(duì)象并無關(guān),我們再次查看類對(duì)象屬性,看是否有這兩個(gè)

{'__module__': '__main__', 'setXy': <function CC.setXy at 0x000001BDC8F3C5E8>, 'print': <function CC.print at 0x000001BDC8F3C828>, '__dict__': <attribute '__dict__' of 'CC' objects>, '__weakref__': <attribute '__weakref__' of 'CC' objects>, '__doc__': None}

實(shí)例對(duì)象和類對(duì)象屬性關(guān)系并不大,存放的內(nèi)存也是分隔開來的

del CC ee=CC()


執(zhí)行del類對(duì)象后,然后進(jìn)行再進(jìn)行實(shí)例對(duì)象的創(chuàng)建,就不能進(jìn)行創(chuàng)建操作了。那能不能進(jìn)行其它函數(shù)調(diào)用呢?

del CC dd.print()


類中定義的屬性是靜態(tài)變量,方法也一樣,就算類對(duì)象被刪除了,它們依然在內(nèi)存中

總結(jié)

以上是生活随笔為你收集整理的Python对象注意点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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