日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python中的def?__init__(?)函數_python

作者:旅途中的寬~ ? 更新時間: 2022-11-03 編程語言

在這里,我們要區分兩個函數:

第一種形式def __init__(self):

這種形式在__init__方法中,只有一個self,指的是實例的本身,但是在方法的類部,包含三個屬性:feature_index、threshold和alpha。它允許定義一個空的結構,當新數據來時,可以直接添加。實例化時,需要實例化之后,再進行賦值。

def __init__(self):
    # 特征索引
    self.feature_index=None
    # 特征劃分閾值
    self.threshold=None
    # 指示分類準確率
    self.alpha=None

第二種形式def __init__(self, 參數1,參數2,···,參數n):

這種形式在定義方法時,就直接給定了三個參數feature_index、thresholdalpha,且屬性值不允許為空。實例化時,直接傳入參數。

def __init__(self,feature_index,threshold,alpha):
    # 特征索引
    self.feature_index=feature_index
    # 特征劃分閾值
    self.threshold=threshold
    # 指示分類準確率
    self.alpha=alpha

區別很明顯,前者在__init__方法中,只有一個self,指的是實例的本身,但是在方法的類部,包含三個屬性,feature_index、threshold和alpha。

下面的這個即是在定義方法時,就直接給定了兩個參數。

針對這樣的兩個,之前不解的地方,是如何實例化,第二個很明顯就是直接實例化時,傳入相應的參數,而第一種,則需要實例化之后,對屬性進行賦值。

兩者的區別:

第一種的區別,他定義了這樣一種類,他可以是一個空的結構,比如學生的表,當學生還沒有進行考試時,他已經有了學生的姓名和成績,當新的數據來的時候,可以直接添加進來。這個可以很方便的進行;

而第二種,則需要必須傳值,不允許為空。當然第二種對于已有數據的導入是很方便的,在語句上減少了很多。

我們看一下第一種形式的實現方法:

class Student:
    def __init__(self):  # 兩者之間的區別
        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())

我們接下來看一下第二類方法的實現:

class Student:
    def __init__(self,name,score):  # 兩者之間的區別
        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())

以上是一個很簡單的,兩者比較,兩者都在上述代碼中進行了簡單的實現,自己進行相應的注釋。

原文鏈接:https://blog.csdn.net/wzk4869/article/details/126763188

欄目分類
最近更新