python, python中class的用法是什么?不知道小伙伴們今天來(lái)看看邊肖的分享吧!
1.類別的定義和常用名稱:
類:用于描述具有相同屬性和方法的對(duì)象集合。它定義集合中每個(gè)對(duì)象共有的屬性和方法。
對(duì)象:它是一個(gè)類的實(shí)例化。
方法:引用類中定義的函數(shù)。
2.類對(duì)象支持兩種操作:
屬性引用和實(shí)例化。
屬性引用的語(yǔ)法:obj。屬性
類實(shí)例化的語(yǔ)法:obj=類名()
調(diào)用類中的方法:obj。方法名稱()
3.例如:
例1
Class Students (Object): # Customize a class student.
Def speak(self): ##哪個(gè)對(duì)象調(diào)用這個(gè)方法,self就是那個(gè)對(duì)象;Self可以理解為一個(gè)形式參數(shù)。
Print (%s said: I am %s years old% (self.name, self.age))
John=student() # Class Student實(shí)例化一個(gè)對(duì)象John。
John.name=John #向?qū)ο筇砑訉傩?
john.age=19
John.speak() #調(diào)用類中的speak()方法。
此時(shí)的輸出是
約翰說(shuō):我今年19歲。
例2
Class student(object): #用init定義了一個(gè)構(gòu)造函數(shù),不同于自定義類。
Def _ _ init _ _ (self,n,a): # _ _ init _ _()是類的初始化方法;類實(shí)例化后會(huì)自動(dòng)調(diào)用,不需要手動(dòng)調(diào)用;
self.name=n
Self.age=a #設(shè)置屬性
Def speak(self): #定義一個(gè)類中的公共方法。
Print (%s said: I am %s years old% (self.name, self.age))
John=student (john,19) # Class Student實(shí)例化一個(gè)對(duì)象John。
John.speak() #調(diào)用類中的speak()方法。
最終輸出與前面的示例相同。
在python中使用以_ _開(kāi)頭,以_ _結(jié)尾的方法稱為魔法。
Init(self)是一個(gè)類的初始化方法,也稱為構(gòu)造方法,是一種特殊的魔法方法。Init(self)會(huì)在實(shí)例化后自動(dòng)調(diào)用,不需要手動(dòng)調(diào)用,所以屬性一般設(shè)置在_ init _ _();
常用的魔法方法有:str(self)、del(self)等。
4.類的繼承和super和self的使用:
子類繼承父類,也就是說(shuō),它擁有父類的屬性和方法。
python中類的初始化是__init__()。所以父類和子類的初始化方法是__init__()
但是如果子類在初始化的時(shí)候沒(méi)有這個(gè)函數(shù),它會(huì)調(diào)用父類的_ _ init _ _()函數(shù);(相應(yīng)的示例輸入1)
如果一個(gè)子類調(diào)用了父類的init,但是定義了自己的init,那么它會(huì)覆蓋父類的初始化函數(shù),只顯示子類本身的初始化。(相應(yīng)的示例輸入2)
Enter 1:
class Animal(object):
def __init__(self):
Self.name=我是父類。
class Panda(Animal):
def __init__(self):
超級(jí)()。__init__() #使用super顯示調(diào)用父類的__init__()函數(shù)。
超級(jí)(熊貓,自己)。__init__() #超級(jí)初始化的第二種方式
if __name__==__main__:
Panda=Panda() # Instantiate Panda
print(panda.name)
Output 1:
我是家長(zhǎng)班。
Enter 2:
class Animal(object):
def __init__(self):
Self.name=我是父類。
class Panda(Animal):
def __init__(self):
super().__init__()
self.name=panda
if __name__==__main__:
panda=Panda()
print(panda.name)
Output 2:
panda
2.自我和超我的區(qū)別:
(1) self是在父類中不找的情況下第一個(gè)調(diào)用自己的方法;Super是直接從父類中找方法。
(2)self是類(可以理解為形參),super是預(yù)編譯指令。
反正你要繼承父類,直接上super就行了。
Enter 3:
class Animal(object):
def __init__(self):
Self.name=我是父類。
Def A(self): #父類中的方法A
Print(父類的方法a)
class Panda(Animal):
def __init__(self):
super().__init__()
self.myname=panda
Def a (self):子類#中的方法A。
打印(子類的方法a)
def B(self):
Self. A () # self-call a
Super (). A () # super call a
if __name__==__main__:
panda=Panda()
panda.B() #通過(guò)B函數(shù)來(lái)調(diào)用A方法,查看self和super的區(qū)別
output3:
子類的A方法#我們說(shuō)過(guò)self是先從自身找方法,沒(méi)有再去父類找
父類的A方法#而super則是直接從父類中找
python,以上就是本文為您收集整理的python最新內(nèi)容,希望能幫到您!更多相關(guān)內(nèi)容歡迎關(guān)注。