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實(shí)現(xiàn)將圖片轉(zhuǎn)換為ASCII字符畫(huà)
這篇文章主要介紹了Python實(shí)現(xiàn)將圖片轉(zhuǎn)換為ASCII字符畫(huà),要將圖片轉(zhuǎn)換為字符圖其實(shí)很簡(jiǎn)單,我們首先將圖片轉(zhuǎn)換為灰度圖像,這樣圖片的每個(gè)像素點(diǎn)的顏色值都是0到255,然后我們選用一些在文字矩形框內(nèi)占用面積從大到小的ASCII碼字符2022-08-08
對(duì)python中各個(gè)response的使用說(shuō)明
今天小編就為大家分享一篇對(duì)python中各個(gè)response的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Python新手入門(mén)之常用關(guān)鍵字的簡(jiǎn)單示例詳解
關(guān)鍵字是預(yù)先保留的標(biāo)識(shí)符,每個(gè)關(guān)鍵字都有特殊的含義,下面這篇文章主要給大家介紹了關(guān)于Python新手入門(mén)之常用關(guān)鍵字的簡(jiǎn)單示例,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
Python在centos7.6上安裝python3.9的詳細(xì)教程(默認(rèn)python版本為2.7.5)
這篇文章主要介紹了Python在centos7.6上安裝python3.9(默認(rèn)python版本為2.7.5)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-10-10
Python+Pygame實(shí)戰(zhàn)之炫舞小游戲的實(shí)現(xiàn)
提到QQ炫舞,可能很多人想到的第一個(gè)詞是“青春”。恍然間,這個(gè)承載了無(wú)數(shù)人回憶與時(shí)光的游戲品牌,已經(jīng)走到了第十幾個(gè)年頭。今天小編就來(lái)給大家嘗試做一款簡(jiǎn)單的簡(jiǎn)陋版的小游戲——《舞動(dòng)青春*炫舞》,感興趣的可以了解一下2022-12-12
從零學(xué)python系列之新版本導(dǎo)入httplib模塊報(bào)ImportError解決方案
在使用新版python打開(kāi)舊版本代碼的時(shí)候,可能會(huì)有些報(bào)錯(cuò)或者不兼容的情況出現(xiàn),今天我們就來(lái)分析其中的一種情況2014-05-05

