Python中的def __init__( )函數(shù)
在這里,我們要區(qū)分兩個(gè)函數(shù):
第一種形式:def __init__(self):
這種形式在__init__
方法中,只有一個(gè)self
,指的是實(shí)例的本身,但是在方法的類部,包含三個(gè)屬性:feature_index、threshold和alpha。它允許定義一個(gè)空的結(jié)構(gòu),當(dāng)新數(shù)據(jù)來(lái)時(shí),可以直接添加。實(shí)例化時(shí),需要實(shí)例化之后,再進(jìn)行賦值。
def __init__(self): # 特征索引 self.feature_index=None # 特征劃分閾值 self.threshold=None # 指示分類準(zhǔn)確率 self.alpha=None
第二種形式:def __init__(self, 參數(shù)1,參數(shù)2,···,參數(shù)n):
這種形式在定義方法時(shí),就直接給定了三個(gè)參數(shù)feature_index
、threshold
和alpha
,且屬性值不允許為空。實(shí)例化時(shí),直接傳入?yún)?shù)。
def __init__(self,feature_index,threshold,alpha): # 特征索引 self.feature_index=feature_index # 特征劃分閾值 self.threshold=threshold # 指示分類準(zhǔn)確率 self.alpha=alpha
區(qū)別很明顯,前者在__init__
方法中,只有一個(gè)self
,指的是實(shí)例的本身,但是在方法的類部,包含三個(gè)屬性,feature_index、threshold和alpha。
下面的這個(gè)即是在定義方法時(shí),就直接給定了兩個(gè)參數(shù)。
針對(duì)這樣的兩個(gè),之前不解的地方,是如何實(shí)例化,第二個(gè)很明顯就是直接實(shí)例化時(shí),傳入相應(yīng)的參數(shù),而第一種,則需要實(shí)例化之后,對(duì)屬性進(jìn)行賦值。
兩者的區(qū)別:
第一種的區(qū)別,他定義了這樣一種類,他可以是一個(gè)空的結(jié)構(gòu),比如學(xué)生的表,當(dāng)學(xué)生還沒(méi)有進(jìn)行考試時(shí),他已經(jīng)有了學(xué)生的姓名和成績(jī),當(dāng)新的數(shù)據(jù)來(lái)的時(shí)候,可以直接添加進(jìn)來(lái)。這個(gè)可以很方便的進(jìn)行;
而第二種,則需要必須傳值,不允許為空。當(dāng)然第二種對(duì)于已有數(shù)據(jù)的導(dǎo)入是很方便的,在語(yǔ)句上減少了很多。
我們看一下第一種形式的實(shí)現(xiàn)方法:
class Student: def __init__(self): # 兩者之間的區(qū)別 self.name = None self.score = None def print_score(self): print("%s score is %s" % (self.name, self.score)) def classify_grades(self): if self.score >= 80: return "A" elif self.score >= 70: return "B" else: return "C" student = Student() student.name = "sansan" student.score = 90 student.print_score() print(student.classify_grades())
我們接下來(lái)看一下第二類方法的實(shí)現(xiàn):
class Student: def __init__(self,name,score): # 兩者之間的區(qū)別 self.name = name self.score = score def print_score(self): print("%s score is %s" % (self.name, self.score)) def classify_grades(self): if self.score >= 80: return "A" elif self.score >= 70: return "B" else: return "C" student = Student('xiao ming',90) student.print_score() print(student.classify_grades())
以上是一個(gè)很簡(jiǎn)單的,兩者比較,兩者都在上述代碼中進(jìn)行了簡(jiǎn)單的實(shí)現(xiàn),自己進(jìn)行相應(yīng)的注釋。
到此這篇關(guān)于Python中的def __init__( )函數(shù)的文章就介紹到這了,更多相關(guān)Python def __init__( )內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python的Flask站點(diǎn)中集成xhEditor文本編輯器的教程
xhEditor是基于jQuery的Web端文本編輯器,基本的圖片上傳等功能也都帶有,這里我們就來(lái)看一下Python的Flask站點(diǎn)中集成xhEditor文本編輯器的教程2016-06-06Python參數(shù)傳遞機(jī)制傳值和傳引用原理詳解
這篇文章主要介紹了Python參數(shù)傳遞機(jī)制傳值和傳引用原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Django權(quán)限機(jī)制實(shí)現(xiàn)代碼詳解
這篇文章主要介紹了Django權(quán)限機(jī)制實(shí)現(xiàn)代碼詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02解決Pycharm下面出現(xiàn)No R interpreter defined的問(wèn)題
今天小編就為大家分享一篇解決Pycharm下面出現(xiàn)No R interpreter defined的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10利用Python腳本寫(xiě)端口掃描器socket,python-nmap
這篇文章主要介紹了利用Python腳本寫(xiě)端口掃描器socket,python-nmap,文章圍繞主題展開(kāi)詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07DRF之請(qǐng)求與響應(yīng)的實(shí)現(xiàn)
本文主要介紹了DRF請(qǐng)求與響應(yīng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07Python爬蟲(chóng)之Selenium實(shí)現(xiàn)關(guān)閉瀏覽器
這篇文章主要介紹了Python爬蟲(chóng)之Selenium實(shí)現(xiàn)關(guān)閉瀏覽器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12