版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python程序設(shè)計(jì)授課教師:第8章面向?qū)ο蟪绦蛟O(shè)計(jì)課程描述面向?qū)ο缶幊淌荘ython采用的基本編程思想,它可以將屬性和代碼集成在一起,定義為類,從而使程序設(shè)計(jì)更加簡(jiǎn)單、規(guī)范、有條理。本章將介紹在Python中實(shí)現(xiàn)面向?qū)ο缶幊痰幕痉椒?。本章知識(shí)點(diǎn)8.1面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)8.2定義和使用類8.3類的繼承和多態(tài)8.4復(fù)制對(duì)象8.1面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)8.1.1面向?qū)ο蟪绦蛟O(shè)計(jì)思想概述8.1.2面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本概念8.1.1面向?qū)ο蟪绦蛟O(shè)計(jì)思想概述在日常生活中,要描述一個(gè)事務(wù),既要說(shuō)明它的屬性,也要說(shuō)明它所能進(jìn)行的操作。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,將事務(wù)的屬性和方法都包含在類中,而對(duì)象則是類的一個(gè)實(shí)例。如果將人定義為類的話,那么某個(gè)具體的人就是一個(gè)對(duì)象。不同的對(duì)象擁有不同的屬性值。8.1.1面向?qū)ο蟪绦蛟O(shè)計(jì)思想概述8.1.2面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本概念
(1)對(duì)象(object):面向?qū)ο蟪绦蛟O(shè)計(jì)思想可以將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個(gè)實(shí)體,這個(gè)實(shí)體就是對(duì)象。(2)類(class):具有相同或相似性質(zhì)的對(duì)象的抽象就是類。因此,對(duì)象的抽象是類,類的具體化就是對(duì)象。例如,如果人類是一個(gè)類,則一個(gè)具體的人就是一個(gè)對(duì)象。(3)封裝:將數(shù)據(jù)和操作捆綁在一起,定義一個(gè)新類的過(guò)程就是封裝。8.1.2面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本概念
(4)繼承:類之間的關(guān)系,在這種關(guān)系中,一個(gè)類共享了一個(gè)或多個(gè)其他類定義的結(jié)構(gòu)和行為。繼承描述了類之間的關(guān)系。子類可以對(duì)基類的行為進(jìn)行擴(kuò)展、覆蓋、重定義。如果人類是一個(gè)類,則可以定義一個(gè)子類“男人”?!澳腥恕笨梢岳^承人類的屬性(例如,姓名、身高、年齡等)和方法(即動(dòng)作,例如,吃飯和走路等),在子類中就無(wú)需重復(fù)定義了。從同一個(gè)類中繼承得到的子類也具有多態(tài)性,即相同的函數(shù)名在不同子類中有不同的實(shí)現(xiàn)。就如同子女會(huì)從父母那里繼承到人類共有的特性,而子女也具有自己的特性。8.1.2面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本概念
(5)方法:也稱為成員函數(shù),是指對(duì)象上的操作,作為類聲明的一部分來(lái)定義。方法定義了對(duì)一個(gè)對(duì)象可以執(zhí)行的操作。(6)構(gòu)造函數(shù):一種成員函數(shù),用來(lái)在創(chuàng)建對(duì)象時(shí)初始化對(duì)象。(7)析構(gòu)函數(shù):析構(gòu)函數(shù)與構(gòu)造函數(shù)相反,當(dāng)對(duì)象脫離其作用域時(shí)(例如對(duì)象所在的函數(shù)已調(diào)用完畢),系統(tǒng)自動(dòng)執(zhí)行析構(gòu)函數(shù)。析構(gòu)函數(shù)往往用來(lái)做“清理善后”的工作。8.2定義和使用類8.2.1聲明類8.2.2靜態(tài)變量8.2.3靜態(tài)方法的使用8.2.4類方法的使用8.2.5對(duì)象類型判斷8.2.1聲明類在Python中,可以使用class關(guān)鍵字來(lái)聲明一個(gè)類,基本語(yǔ)法如下:class類名:
成員變量
成員函數(shù)同樣,Python使用縮進(jìn)標(biāo)識(shí)類的定義代碼?!纠?-1】定義一個(gè)類PersonclassPerson: defSayHello(self): print("Hello!")在類Person中,定義了一個(gè)成員函數(shù)SayHello,用于輸出字符串"Hello!"1.self【例8-1】中,在成員函數(shù)SayHello()中有一個(gè)參數(shù)self。這也是類的成員函數(shù)(方法)與普通函數(shù)的主要區(qū)別。類的成員函數(shù)必須有一個(gè)參數(shù)self,而且位于參數(shù)列表的開(kāi)頭。self就代表類的實(shí)例(對(duì)象)自身,可以使用self引用類的屬性和成員函數(shù)。2.定義類的對(duì)象對(duì)象是類的實(shí)例。只有定義了具體的對(duì)象,才能使用類。Python創(chuàng)建對(duì)象的方法如下:
對(duì)象名=類名()例如,下面的代碼定義了一個(gè)類Person的對(duì)象p:p=Person()p實(shí)際相當(dāng)于一個(gè)變量,可以使用它來(lái)訪問(wèn)類的成員變量和成員函數(shù)。【例8-2】classPerson: defSayHello(self): print("Hello!")p=Person()p.SayHello()程序定義了類Person的一個(gè)對(duì)象p,然后使用它來(lái)調(diào)用類Person的成員函數(shù)SayHello(),運(yùn)行結(jié)果如下:Hello!3.成員變量在類定義中,可以定義成員變量并同時(shí)對(duì)其賦初始值?!纠?-3】定義一個(gè)類MyString,定義成員變量str,并同時(shí)對(duì)其賦初始值。classMyString: str="MyString" defoutput(self): print(self.str)#在類的成員函數(shù)中使用self引用成員變量s=MyString()s.output()運(yùn)行結(jié)果:MyString3.成員變量Python使用下劃線作為變量前綴和后綴來(lái)指定特殊變量,規(guī)則如下:
__xxx__表示系統(tǒng)定義名字。
__xxx表示類中的私有變量名。類的成員變量可以分為兩種情況,一種是公有變量,一種是私有變量。公有變量可以在類的外部訪問(wèn),它是類與用戶之間交流的接口。用戶可以通過(guò)公有變量向類中傳遞數(shù)據(jù),也可以通過(guò)公有變量獲取類中的數(shù)據(jù)。在類的外部無(wú)法訪問(wèn)私有變量,從而保證類的設(shè)計(jì)思想和內(nèi)部結(jié)構(gòu)并不完全對(duì)外公開(kāi)。在Python中除了__xxx格式的成員變量外,其他的成員變量都是公有變量。4.構(gòu)造函數(shù)構(gòu)造函數(shù)是類的一個(gè)特殊函數(shù),它擁有一個(gè)固定的名稱,即__init__(注意,函數(shù)名是以兩個(gè)下劃線開(kāi)頭和兩個(gè)下劃線結(jié)束的)。當(dāng)創(chuàng)建類的對(duì)象實(shí)例時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù),通過(guò)構(gòu)造函數(shù)對(duì)類進(jìn)行初始化操作。【例8-4】在MyString類中使用構(gòu)造函數(shù)的實(shí)例。classMyString: def__init__(self): self.str="MyString" defoutput(self): print(self.str)s=MyString()s.output()在構(gòu)造函數(shù)中,程序?qū)凶兞縮tr設(shè)置了初始值??梢栽跇?gòu)造函數(shù)中使用參數(shù),通常使用參數(shù)來(lái)設(shè)置成員變量(特別是私有變量)的值?!纠?-5】在類UserInfo中使用帶參數(shù)的構(gòu)造函數(shù)。classUserInfo: def__init__(self,name,pwd): self.username=name#公有變量 self._pwd=pwd#私有變量 defoutput(self): print("用戶:"+self.username+"\n密碼:"+self._pwd)u=UserInfo("admin","123456")u.output()【例8-5】運(yùn)行結(jié)果如下:用戶:admin密碼:1234565.析構(gòu)函數(shù)Python析構(gòu)函數(shù)有一個(gè)固定的名稱,即__del__。通常在析構(gòu)函數(shù)中釋放類所占用的資源。使用del語(yǔ)句可以刪除一個(gè)對(duì)象。釋放它所占用的資源。在實(shí)例對(duì)象被回收時(shí)將調(diào)用析構(gòu)函數(shù)。【例8-6】使用析構(gòu)函數(shù)的一個(gè)實(shí)例。classMyString: def__init__(self):#構(gòu)造函數(shù) self.str="MyString" def__del__(self):#析構(gòu)函數(shù) print("byebye~") defoutput(self): print(self.str)s=MyString()s.output()dels#刪除對(duì)象【例8-6】運(yùn)行結(jié)果如下:MyStringbyebye~8.2.2靜態(tài)變量靜態(tài)變量和靜態(tài)方法是類的靜態(tài)成員,它們與普通的成員變量和成員方法不同,靜態(tài)類變量和成員與具體的對(duì)象沒(méi)有關(guān)系,而是只屬于定義它們的類。8.2.2靜態(tài)變量Python不需要顯式定義靜態(tài)變量,任何公有變量都可以作為靜態(tài)變量使用。訪問(wèn)靜態(tài)變量的方法:類名.變量名雖然也可以通過(guò)對(duì)象名訪問(wèn)靜態(tài)變量,但是同一個(gè)變量,通過(guò)類名訪問(wèn)與通過(guò)對(duì)象名訪問(wèn)的實(shí)例不同,而且不互相干擾。【例8-7】定義一個(gè)類Users,使用靜態(tài)變量online_count記錄當(dāng)前在線的用戶數(shù)量。classUsers:online_count=0def__init__(self):#構(gòu)造函數(shù),創(chuàng)建對(duì)象時(shí),Users.online_count加1Users.online_count+=1def__del__(self):#析構(gòu)函數(shù),釋放對(duì)象時(shí),Users.online_count減1Users.online_count-=1a=Users()#創(chuàng)建Users對(duì)象aa.online_count+=1print(Users.online_count)運(yùn)行結(jié)果:1【例8-7】擴(kuò)展classUsers:online_count=0def__init__(self):Users.online_count+=1def__del__(self):Users.online_count-=1print(Users.online_count)a=Users()a.online_count+=1print(Users.online_count)print(a.online_count)運(yùn)行結(jié)果:0128.2.3靜態(tài)方法的使用與靜態(tài)變量相同,靜態(tài)方法只屬于定義它的類,而不屬于任何一個(gè)具體的對(duì)象。靜態(tài)方法具有如下特點(diǎn):(1)靜態(tài)方法無(wú)需傳入self參數(shù),因此在靜態(tài)方法中無(wú)法訪問(wèn)實(shí)例變量。(2)在靜態(tài)方法中不可以直接訪問(wèn)類的靜態(tài)變量,但可以通過(guò)類名引用靜態(tài)變量。因?yàn)殪o態(tài)方法既無(wú)法訪問(wèn)實(shí)例變量,也不能直接訪問(wèn)類的靜態(tài)變量,所以靜態(tài)方法與定義它的類沒(méi)有直接關(guān)系,而是起到了類似函數(shù)工具庫(kù)的作用。8.2.3靜態(tài)方法的使用使用裝飾符@staticmethod定義靜態(tài)方法:class類名: @staticmethod def靜態(tài)方法名():
方法體可以通過(guò)對(duì)象名調(diào)用靜態(tài)方法,也可以通過(guò)類名調(diào)用靜態(tài)方法。而且這兩種方法沒(méi)有區(qū)別?!纠?-8】classMyClass:#定義類
var1='String1'@staticmethod#靜態(tài)方法
defstaticmd():print("我是靜態(tài)方法")MyClass.staticmd()c=MyClass()c.staticmd()程序中分別使用類和對(duì)象調(diào)用靜態(tài)方法staticmd(),運(yùn)行結(jié)果如下:我是靜態(tài)方法我是靜態(tài)方法8.2.4類方法的使用類方法是Python的一個(gè)新概念。類方法具有如下特性:(1)與靜態(tài)方法一樣,可以使用類名調(diào)用類方法。(2)與靜態(tài)方法一樣,類成員方法也無(wú)法訪問(wèn)實(shí)例變量,但可以訪問(wèn)類的靜態(tài)變量。(3)類方法需傳入代表本類的cls參數(shù)。8.2.4類方法的使用使用裝飾符@classmethod定義類方法:class類名: @classmethod def類方法名(cls):
方法體可以通過(guò)對(duì)象名調(diào)用類方法,也可以通過(guò)類名調(diào)用類方法。而且這兩種方法沒(méi)有什么區(qū)別。類方法有一個(gè)參數(shù)cls,代表定義類方法的類,可以通過(guò)cls訪問(wèn)類的靜態(tài)變量。【例8-9】classMyClass:#定義類
val1='String1'
def__init__(self):self.val2='Value2'@classmethod#類方法
defclassmd(cls):print(cls.val1)#通過(guò)參數(shù)cls訪問(wèn)類的靜態(tài)變量MyClass.classmd()c=MyClass()c.classmd()【例8-9】運(yùn)行結(jié)果如下:String1String18.2.5對(duì)象類型判斷使用isinstance()函數(shù)可以用來(lái)檢測(cè)一個(gè)給定的對(duì)象是否屬于(繼承于)某個(gè)類或類型,如果是則返回True;否則返回False。其使用方法:isinstance(對(duì)象名,類名或類型名)【例8-10】classMyClass:#定義類
val1='String1'
def__init__(self):self.val2='Value2'c=MyClass()print(isinstance(c,MyClass))l=[1,2,3,4]print(isinstance(l,list))運(yùn)行結(jié)果如下:TrueTrue8.3類的繼承和多態(tài)繼承和多態(tài)是面向?qū)ο蟪绦蛟O(shè)計(jì)思想的重要機(jī)制。類可以繼承其他類的內(nèi)容,包括成員變量和成員函數(shù)。而從同一個(gè)類中繼承得到的子類也具有多態(tài)性,即相同的函數(shù)名在不同子類中有不同的實(shí)現(xiàn)。就如同子女會(huì)從父母那里繼承到人類共有的特性,而子女也具有自己的特性。8.3.1繼承通過(guò)繼承機(jī)制,用戶可以很方便地繼承其他類的工作成果。如果有一個(gè)設(shè)計(jì)完成的類A,可以從其派生出一個(gè)子類B,類B擁有類A的所有屬性和函數(shù),這個(gè)過(guò)程叫做繼承。類A被稱為類B的父類。8.3.1繼承可以在定義類時(shí)指定其父類。例如,存在一個(gè)類A,定義代碼如下:classA:
def__init__(self,property):#構(gòu)造函數(shù)
pertyA=property#類A的成員變量
deffunctionA():
#類A的成員函數(shù)從類A派生一個(gè)類B,代碼如下:classB(A):propertyB#類B的成員變量deffunctionB(): #類B的成員函數(shù)8.3.1繼承從類B中可以訪問(wèn)到類A中的成員變量和成員函數(shù),例如:objB=B() #定義一個(gè)類B的對(duì)象objBprint(objB.propertyA) #訪問(wèn)類A的成員變量objB.functionA()#訪問(wèn)類A的成員函數(shù)因?yàn)轭怋是從類A派生出來(lái)的,所以它繼承了類A的屬性和方法?!纠?-11】參見(jiàn)教材
8.3.2抽象類和多態(tài)使用面向?qū)ο蟪绦蛟O(shè)計(jì)思想可以通過(guò)對(duì)類的繼承實(shí)現(xiàn)應(yīng)用程序的層次化設(shè)計(jì)。類的繼承關(guān)系是樹(shù)狀的,從一個(gè)根類中可以派生出多個(gè)子類,而子類還可以派生出其他子類,以此類推。每個(gè)子類都可以從父類中繼承成員變量和成員函數(shù),實(shí)際上相當(dāng)于繼承了一套程序設(shè)計(jì)框架。8.3.2抽象類和多態(tài)Python可以實(shí)現(xiàn)抽象類的概念。抽象類是包含抽象方法的類,而抽象方法不包含任何實(shí)現(xiàn)的代碼,只能在其子類中實(shí)現(xiàn)抽象函數(shù)的代碼。例如,在繪制各種圖形時(shí),都可以指定繪圖使用的顏色(Color變量),也需要包含一個(gè)繪制動(dòng)作(Draw()方法)。而在繪制不同圖形時(shí),還需要指定一些特殊的屬性,例如在畫線時(shí)需要指定起點(diǎn)和終點(diǎn)的坐標(biāo),在畫圓時(shí)需要指定圓心和半徑等??梢远x一個(gè)抽象類Shape,包含所有繪圖類所包含的Color變量和Draw()方法;分別定義畫線類MyLine和畫圓類MyCircle,具體實(shí)現(xiàn)Draw()方法。1.定義抽象類Python通過(guò)類庫(kù)abc實(shí)現(xiàn)抽象類,因此在定義抽象類之前需要從類庫(kù)abc導(dǎo)入ABCMeta類和abstractmethod類。方法如下:fromabcimportABCMeta,abstractmethodABCMeta是MetaclassfordefiningAbstractBaseClasses的縮寫,也就是抽象基類的元類。所謂元類就是創(chuàng)建類的類。在定義抽象類時(shí)只需要在類定義中增加如下代碼:__metaclass__=ABCMeta即指定該類的元類是ABCMeta。例如:classmyabc(object):__metaclass__=ABCMeta……1.定義抽象類在抽象類里面可以定義抽象方法。定義抽象方法時(shí)需要在前面加上代碼:@abstractmethod因?yàn)槌橄蠓椒ú话魏螌?shí)現(xiàn)的代碼,所以其函數(shù)體通常使用pass。例如,在抽象類myabc中定義一個(gè)抽象方法abcmethod(),代碼如下:classmyabc(object):__metaclass__=ABCMeta@abstractmethoddefabcmethod(self):pass……2.實(shí)現(xiàn)抽象類可以從抽象類派生子類。方法與普通類的派生和繼承一樣,可以參照教材8.3.1節(jié)理解。3.多態(tài)所謂多態(tài),指抽象類中定義的一個(gè)方法,可以在其子類中重新實(shí)現(xiàn),不同子類中的實(shí)現(xiàn)方法也不相同?!纠?-12】首先創(chuàng)建一個(gè)抽象類Shape,它定義了一個(gè)畫圖類的基本框架,代碼如下:classShape(object):__metaclass__=ABCMetadef__init__(self):self.color='black'#默認(rèn)使用黑色@abstractmethoddefdraw(self):pass【例8-12】創(chuàng)建類Shape的子類circleclasscircle(Shape):def__init__(self,x,y,r):#定義圓心坐標(biāo)和半徑
self.x=xself.y=yself.r=rdefdraw(self):print("DrawCircle:(%d,%d,%d)"%(self.x,self.y,self.r))【例8-12】再?gòu)念怱hape中派生出畫直線的類lineclassline(Shape):def__init__(self,x1,y1,x2,y2):#定義起止坐標(biāo)值
self.x1=x1self.y1=y1self.x2=x2self.y2=y2defdraw(self):print("DrawLine:(%d,%d,%d,%d)"%(self.x1,self.y1,self.x2,self.y2))【例8-12】從上可以看到,在不同的子類中,抽象方法draw()有不同的實(shí)現(xiàn),這就是類的多態(tài)?!纠?-12】定義一個(gè)類circle的對(duì)象c,然后調(diào)用draw()方法,代碼如下:c=circle(10,10,5)c.draw()定義一個(gè)類line的對(duì)象l,然后調(diào)用draw()函數(shù),代碼如下:l=line(10,10,20,20)l.draw()輸出結(jié)果如下:DrawCircle:(10,10,5)DrawLine:(10,10,20,20)3.多態(tài)因?yàn)槌橄箢惖淖宇惗紝?shí)現(xiàn)抽象類中定義的抽象方法,所以可以把同一抽象類的各種子類對(duì)象定義成一個(gè)序列的元素,然后遍歷列表,調(diào)用抽象方法?!纠?-13】將【例8-12】中類circle和類line的對(duì)象組成一個(gè)列表list。然后通過(guò)遍歷列表list,調(diào)用抽象方法。類Shape及其子類circle和line的定義與【例8-12】中相同。定義對(duì)象列表和遍歷列表調(diào)用抽象方法的代碼如下:c=circle(10,10,5)l=line(10,10,20,20)list=[]list.append(c)list.append(l)foriinrange(len(list)):list[i].draw()【例8-13】輸出結(jié)果如下:DrawCircle:(10,10,5)DrawLine:(10,10,20,20)8.4復(fù)制對(duì)象8.4.1通過(guò)賦值復(fù)制對(duì)象8.4.2通過(guò)函數(shù)參數(shù)復(fù)制對(duì)象8.4.1通過(guò)賦值復(fù)制對(duì)象可以通過(guò)賦值操作復(fù)制對(duì)象,方法如下:新對(duì)象名=原有對(duì)象名【例8-14】在【例8-13】的基礎(chǔ)上,定義一個(gè)類circle的對(duì)象mycircle,對(duì)其設(shè)置成員變量的值。然后再將其賦值到新的對(duì)象newcir
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理SBAR交班在臨床中的應(yīng)用
- (新教材)2026年滬科版八年級(jí)下冊(cè)數(shù)學(xué) 19.2.2 平行四邊形的判定 課件
- 2025年鮑魚養(yǎng)殖海域使用協(xié)議
- T-CES 217-2023 低壓配電網(wǎng)饋線監(jiān)測(cè)裝置技術(shù)規(guī)范
- 黃埔區(qū)2025年第二次招聘社區(qū)專職工作人員備考題庫(kù)含答案詳解
- 超聲婦產(chǎn)科試題庫(kù)及答案
- 2026 年中職經(jīng)管類(管理學(xué)原理)試題及答案
- 2025年應(yīng)急救援知識(shí)競(jìng)賽題及答案(共90題)
- 標(biāo)準(zhǔn)的性格測(cè)試題及答案
- 2025年運(yùn)輸工程考試題庫(kù)及答案
- 美容管理營(yíng)銷課程培訓(xùn)
- 高層建筑火災(zāi)風(fēng)險(xiǎn)評(píng)估與管理策略研究
- 綜合管線探挖安全專項(xiàng)施工方案
- GB/T 37507-2025項(xiàng)目、項(xiàng)目群和項(xiàng)目組合管理項(xiàng)目管理指南
- 華為管理手冊(cè)-新員工培訓(xùn)
- 社保補(bǔ)繳差額協(xié)議書
- 2025成人有創(chuàng)機(jī)械通氣氣道內(nèi)吸引技術(shù)操作
- 2025年江蘇省職業(yè)院校技能大賽高職組(人力資源服務(wù))參考試題庫(kù)資料及答案
- 東北農(nóng)業(yè)大學(xué)教案課程肉品科學(xué)與技術(shù)
- 成都市金牛區(qū)2025屆初三一診(同期末考試)語(yǔ)文試卷
- 如何應(yīng)對(duì)網(wǎng)絡(luò)暴力和欺凌行為
評(píng)論
0/150
提交評(píng)論