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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python双下划线什么意思_python中几个双下划线用法的含义

發布時間:2023/12/15 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python双下划线什么意思_python中几个双下划线用法的含义 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

_ _ init() _ _(self[,...])

我們有時在類定義寫__init()__方法,但是有時又沒有。__init()__方法相當于其他面向對象的編程語言中的構造方法,也就是類在實例化成對象時首先會調用的一個方法。當我們寫代碼時需要進行初始化的時候,我們才去寫 _ _ init() _ _方法,沒有需要時我們自然不會去寫入這個方法。下面我們給出一個實例,我們先定義一個類,擁有計算面積與周長兩個方法,然后需要對象在初始化擁有長和寬兩個參數

class Test:

def __init__(self, x, y):

self.x = x

self.y = y

def getArea(self):

return self.x * self.y

def grtPeri(self):

return (self.x + self.y) * 2

這里需要注意的是__init()__方法的返回值一定是none,其他就會報錯。

_ _new _ _(cls[,...])

_ _ new _ _()才是一個對象實例化時調用的第一個方法,它和其他的雙下劃線包圍的方法不同,它的第一個參數不是sel而是這個類(cls),而其他的參數會直接傳遞給 _ _ init() _ _ 方法的。

_ _ new _ _()方法需要返回一個實例對象,通常是cls這個實例化的對象,當然我們也可以返回給其他的對象。

_ _ new _ _()方法平時我們很少去重寫它,一般讓python用默認的執行方案就行了。但是還會有情況需要我們取重寫這個方法,比如當繼承一個不可變的類型時,它的特性就會凸顯出來。

下面給出實例。

class CapStr(str):

def __new__(cls, string):

string = string.upper()

return str.__new__(cls, string)

這里返回str.new(cls, string)的優點在于哪呢,因為此時我們只需要注意我們在此處重寫的部分,其他瑣碎的東西可以完全交給python的默認機制就行了,交給它處理可比我們自己寫出錯的概率要小得多。

_ _ del _ _(self)

如果說前面說的兩個方法是對象的構造器的話,那么python也提供了一個析構器,叫做 _ _ del _ _(self)方法。當對象將要被銷毀的時候,這個方法就會調用。但是要注意的是,冰粉del x就相當于調用x. _ _ del _ _(), _ _ del _ _()方法是當垃圾回收機制回收這個對象時候調用的。

舉個例子

class A:

def __init__(self):

print("方法1被調用")

def __del__(self):

print("方法2被調用")

總結

以上是生活随笔為你收集整理的python双下划线什么意思_python中几个双下划线用法的含义的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。