網站首頁 編程語言 正文
在這里,我們要區分兩個函數:
第一種形式: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
、threshold
和alpha
,且屬性值不允許為空。實例化時,直接傳入參數。
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
相關推薦
- 2022-06-20 一文帶你掌握Go語言運算符的使用_Golang
- 2022-12-05 python中的腳本性能分析_python
- 2022-12-15 Python利用pythonping處理ping的示例詳解_python
- 2023-12-16 VMware vSphere vCenter 6.5 重置管理員 administrator@vsp
- 2023-02-09 sql?IDENTITY_INSERT對標識列的作用和使用_MsSql
- 2022-07-21 C語言全面細致講解單雙精度float與double的使用方法_C 語言
- 2022-01-03 比較throw和 throws的異同
- 2022-11-02 Python函數命名空間,作用域LEGB及Global詳析_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支