python類初始
① python中類的構造方法中需要定義和初始化變數嗎
要不要定義取決於有沒有在其他地方用到這些變數,要寫成def _int_(self,name,ID,score1,score2,score3,sum)的情況是你想要在定義類的時候同時初始化這些變數就這么寫,如果想讓這些變數用默認值初始化就可以不用這么寫
② 請問python中類的屬性怎麼初始化為一個列表
你的表述很有問題,問題本身便是錯的。
列表與其他類型的數據一樣,都可以作為實參傳入類和函數,而python在定義形參的時候是不指定類型的,所以完全不知道你為何有此一問。
但不論如何,你可以參考以下代碼。
class Student:
def __init__(self, name, age, scorelist): #構造函數,第一個參數為實例本身,按要求後接三個形參
self.name = name #屬性:姓名
self.age = age #屬性: 年齡
self.scorelist = scorelist #屬性:成績列表
def get_name(self):
return str(self.name)
def get_age(self):
return int(self.age)
def get_course(self):
return int(max(self.scorelist))
#self.scorelist便是傳入的list實參,用max()函數取出最大值,再強制轉換為int型。
zm = Student('zhangming',20,[69,88,100])
print(zm.get_name())
print(zm.get_age())
print(zm.get_course())
③ python類中的變數初始化
python進程重啟後,會默認重新初始化所有變數,不需要做什麼額外的操作。
如果解決了您的問題請採納!
如果未解決請繼續追問!
④ python 編程, 類初始化問題
1.self.__class__
self是當前,類的實例的變數,self.__class__用於獲得對應的類的本身的變數。
2.前面通過
class Circle:
定義而來一個類,叫做Circle
其中,定義了類的變數:
all_circles = []
表示是:一個名叫all_circles的列表,並且初始化賦值為[],表示一個空的列表。
3.all__這是什麼用法?
是你看錯了。
實際是:
all_circles
這是一個單個的變數而已;
這個變數,是之前類Circle中的變數all_circles。
關於這部分內容,建議你去看看我所總結的:
【整理】Python中:self和init__的含義 + 為何要有self和__init__
和
【整理】Python中變數的作用域(variable scope)
就懂了。
裡面有截圖解釋的,便於你理解。
(此處不給貼地址,請自己用google搜標題,即可找到帖子地址)
⑤ Python的類和對象入門
本文來說說Python中的類與對象,Python這門語言是無處不對象,如果你曾淺要了解過Python,你應該聽過Python是一種面向對象編程的語言,所以你經常可能會看到面向「對象」編程這類段子,而面向對象編程的語言都會有三大特徵:封裝、繼承、多態。
我們平時接觸到的很多函數、方法的操作都具有這些性質,我們只是會用,但還沒有去深入了解它的本質,下面就介紹一下關於類和對象的相關知識。
封裝這個概念應該並不陌生,比如我們把一些數據封裝成一個列表,這就屬於數據封裝,我們也可以將一些代碼語句封裝成一個函數方便調用,這就是代碼的封裝,我們也可以將數據和代碼封裝在一起。用術語表示的話,就是可以將屬性和方法進行封裝,從而得到對象。
首先我們可以定義一個類,這個類中有屬性和方法,但有的夥伴會比較好奇,屬性和方法不是會封裝成對象嘛,為什麼又變成類了?舉個例子,類就好比是一個毛坯房,而對象是在毛坯房的基礎上改造成的精裝房。
在類定義完成時就創建了一個類對象,它是對類定義創建的命名空間進行了一個包裝。類對象支持兩種操作:屬性引用和實例化。
屬性引用的語法就是一般的標准語法:obj.name。比如XiaoMing.height和XiaoMing.run就是屬性引用,前者會返回一條數據,而後者會返回一個方法對象。
這里也支持對類屬性進行賦值操作,比如為類中的weight屬性賦予一個新值。
而類的實例化可以將類對象看作成一個無參函數的賦值給一個局部變數,如下:
ming就是由類對象實例化後創建的一個實例對象,通過實例對象也可以調用類中的屬性和方法。
類在實例化過程中並不都是像上面例子一樣簡單的,一般類都會傾向將實例對象創建為有初始狀態的,所以在類中可能會定義一個__init__的魔法方法,這個方法就可以幫助接收、傳入參數。
而一個類如果定義了__init__方法,那麼在類對象實例化的過程中就會自動為新創建的實例化對象調用__init__方法,請看下面這個例子。
可以看到在__init__()中傳入了參數x和y,然後在print_coor中需要接收參數x和y,接下來通過實例化這個類對象,驗證一下參數是否能通過__init__()傳遞到類的實例化操作中。
所謂繼承就是一個新類在另一個類的基礎上構建而成,這個新類被稱作子類或者派生類,而另一個類被稱作父類、基類或者超類,而子類會繼承父類中已有的一些屬性和方法。
比如上面這個例子,我並沒有將list_定義成一個列表,但它卻能調用append方法。原因是類Mylist繼承於list這個基類,而list_又是Mylist的一個實例化對象,所以list_也會擁有父類list擁有的方法。當然可以通過自定義類的形式實現兩個類之間的繼承關系,我們定義Parent和Child兩個類,Child中沒有任何屬性和方法,只是繼承於父類Parent。
當子類中定義了與父類中同名的方法或者屬性,則會自動覆蓋父類對應的方法或屬性,還是用上面這個例子實現一下,方便理解。
可以看到子類Child中多了一個和父類Parent同名的方法,再實例化子類並調用這個方法時,最後調用的是子類中的方法。Python中繼承也允許多重繼承,也就是說一個子類可以繼承多個父類中的屬性和方法,但是這類操作會導致代碼混亂,所以大多數情況下不推薦使用,這里就不過多介紹了。
多態比較簡單,比如定義兩個類,這兩個類沒有任何關系,只是兩個類中有同名的方法,而當兩個類的實例對象分別調用這個方法時,不同類的實例對象調用的方法也是不同的。
上面這兩個類中都有introce方法,我們可以實例化一下兩個類,利用實例對象調用這個方法實現一下多態。
判斷一個類是否是另一個類的子類,如果是則返回True,反之則返回False。
需要注意的有兩點:
判斷一個對象是否為一個類的實例對象,如果是則返回True,反之則返回False。
需要注意的有兩點:
判斷一個實例對象中是否包含一個屬性,如果是則返回True,反之則返回False。
需要注意的是第二個參數name必須為字元串形式傳入,如果不是則會返回False。
⑥ python的初始化方法有什麼用
1.
在程序執行時一定執行一次的操作
2.
python中初始化init 參數第一個必須要加 self
3.
對變數進行賦值 繼承: 子類繼承父類
⑦ __init__ 為什麼python類需要初始化
通常構造一個類,用 init 初始化:
為什麼python類需要初始化
1.python 類初始化屬性 def __init__() 中定義,實例化對象後可直接調用
2.python 類非初始化屬性在 def func() 中定義,實例化對象後, 先調用調用函數,再調用屬性
結果:
⑧ python,類函數初始化是怎麼回事
類比一下Java就很好理解了,__init__是Python類的構造函數,self作用類似於Java中的this指針。
⑨ python中怎麼初始化list
Python中,tuple和list均為內置類型, 以list作為參數將tuple類初始化,將返回tuple類型 tuple([1,2,3]) #list轉換為tuple以tuple作為參數將list類初始化,將返回list類型 list((1,2,3)) #tuple轉換為list
⑩ Python-類的創建和使用
創建一個寵物 Pet 類,根據該類創建的每個實例都將存儲名字和物種,賦予每個寵物吃飯(eat())和睡覺(sleep())的能力:
根據類創建實例
調用方法
給上面的例子進行補充,設置一個寵物到家的初始時間默認值為 0,對某個屬性設定默認值可以不提供形參。
調用一下read_time()
增加一個 update_time() 的方法,指定初始時間
調用
新增一個 increment_time() 方法,表示較初始值而言增加的時間
調用
一個類繼承另一個類時,它將自動獲得另一個類的所有屬性和方法;原有的類稱為父類,而新類稱為子類。子類繼承了其父類的所有屬性和方法,同時還可以定義自己的屬性和方法。
創建一個 Cat 類,繼承 Pet 的屬性,同時可以定義 Cat 特有的屬性。
調用
如果子類中的某些屬性與父類不一樣,可以在子類新建方法重新定義來改寫父類。
類的導入和函數的導入相同。