def __init__(self)和def __init__(self, 參數1,參數2,···,

今天看了下類下函數有兩種定義的形式:只有形式參數self與不僅有self還有其他參數。兩種的區別我用程序來展現,假設用一個類來說明Tom和Jerry玩一個遊戲,他們的得分:
def init(self) 形式
def __init__(self)和def __init__(self, 參數1,參數2,···,
這種形式在init方法中,只有一個self,指的是實例的本身,但是在方法的類部,包含兩個屬性,name, score。它允許定義一個空的結構,當新數據來時,可以直接添加。實例化時,需要實例化之後,再進行賦值
def init(self, 參數1,參數2,···,參數n) 形式
def __init__(self)和def __init__(self, 參數1,參數2,···,
這種形式在定義方法時,就直接給定了兩個參數name和score,且屬性值不允許爲空。實例化時,直接傳入參數

總結:

  1. self是形式參數,當執行s1 = Game(“Tom”, 8)時,self等於s1;當執行s2 = Game(“Jerry”, 7)時,self=s2。
  2. 兩種方法的區別在於定義函數時屬性賦值是否允許爲空和實例化時是否直接傳入參數,個人覺得第二種更爲簡潔。

轉載地址:https://blog.csdn.net/weixin_41644993/article/details/96638853
https://www.cnblogs.com/lansan0701/p/9887675.html
第二個轉載鏈接實例化時,調用了一個方法,用當前方法的返回值進行賦值;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章