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

歡迎訪問 生活随笔!

生活随笔

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

python

python中__init__方法_关于python中__init__方法理解

發(fā)布時間:2025/3/12 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中__init__方法_关于python中__init__方法理解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在理解__init__方法之前,我們需要搞明白,什么時候才需要用到的這個方法

什么是__init__?

__init__方法在python中是類的初始化,通俗來講,就是每次只要你去創(chuàng)建一個類的實例對象的時候,這個對象就會有初始化相關的屬性

什么時候需要去定義__init__?

在我們構建的類的時候,可以看看這個屬性或者這個參數(shù),后面的每個方法都需要用到,如果是,那就需要__init__,例如我們定義logging類的時候,需要定義日志格式,輸出級別。這些其實我們在開始的時候就定義好,然后其他方法直接去用就可以了,那這個時候,我們就需要用到__init__,再抽象出來,比如工廠現(xiàn)在需要制造一批紅色鉛筆,那我是直接在生產(chǎn)前,把顏色直接灌注到材料里面,還是先生產(chǎn)一個沒有顏色的鉛筆,然后再多一道工序刷上紅色油漆,最終得到一個紅色鉛筆呢?很明顯是,在生產(chǎn)前直接灌注對應的紅色顏料到機器,這樣只要啟動按鈕,生產(chǎn)出來的就是紅色鉛筆是不是很方便,在結合__init__,這個時候,我就在__init__方法里面定義顏色為紅色,那么每次創(chuàng)建鉛筆的實例對象的時候,這個鉛筆就是紅色。這個就是__init__

再來一個代碼大家來看看

1. 不用init()方法定義類 定義一個矩形的類,目的是求周長和面積。

class Rectangle():

def getPeri(self,a,b):

return (a + b)*2

def getArea(self,a,b):

return a*b

rect = Rectangle()

print(rect.getPeri(3,4))

print(rect.getArea(3,4))

得到的結果是:14 12

從上例中可以看到,我們在類中并沒有定義init()方法,但是也能夠得到類似的要求,結果返回了矩形實例rect的周長及面積。

但是,我定義了一個矩形,按理來說它的屬性應該是它的長、寬。但是它竟然沒有。這就是沒有定義init()的原因了。

并且,在實例化對象的時候,rect = Rectangle()參數(shù)為空,沒有指定a、b的值,只有在調(diào)用函數(shù)的時候才指定了。且類中定義的每個方法的參數(shù)都有a、b,這顯然浪費感情,在類中直接指定方法就可以了。

2、用init()方法定義類 上述同樣的例子,采用init()方法定義類,如下:

class Rectangle():

def __init__(self,a,b):

self.a = a

self.b = b

def getPeri(self):

return (self.a + self.b)*2

def getArea(self): return self.a * self.b

rect = Rectangle(3,4)

print(rect.getPeri())

print(rect.getArea())

print(rect.__dict__)out

14 12 {'a': 3, 'b': 4}

從上面代碼可以看出,我們只需要在創(chuàng)建對象的時候,傳入對應的參數(shù),這個類下面的所有方法都可以直接用,不需要再做一次傳遞參數(shù)

總結

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

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