教練我想學Python:(二)好的開始,就從找個對象開始吧

系列

前文:選擇困難與PyCharm初體驗

序:對Python一無所知的作者竟然開了這個系列…長話短說,學Python的第二天,既然是面向對象的語言,那就面向對象吧!…Emmm…對象在哪?
P.s:學藝不精,請大佬們多多點撥:)

文章目錄


對象

作爲一門面向對象的語言,那就必須來學一下怎麼找個對象!…怎麼來寫一個對象。
在這裏插入圖片描述

class Coach:
    CoachName = "教練" #公共變量
    __weight = 100 #開頭兩個下滑線代表私有 變量與方法都可以加兩個下滑線來表示私有
    def __init__(self,name:str): #構造函數,self不是關鍵字,可以是其他任何命名
        self.CoachName = name # 賦值操作,操作的都是實例而不是類,所以要用self.
    def speak(self): # def 是聲明函數的關鍵字
        print("%s:小夥子,你有對象嗎?"%self.__class__.CoachName) # 使用類本身的變量,不是實例
    def agree(self):
        print("%s:行吧行吧,找不到對象至少你能創建一個了吧"%self.CoachName)

class LiuChuanFeng(Coach): # 繼承
    Name = "流川楓"
    def __init__(self): #繼承後構造函數中需要對父級進行初始化(如果父級有需要的情況)
        Coach.__init__(self,"教練")

    def speak(self): #父級方法的重寫
        print("%s:八嘎"%self.Name)
    def agree(self):
        print("%s:Zzz...."%self.Name)
    def coachAgree(self):
        super(LiuChuanFeng, self).agree() #子類調用父級被重寫的方法

class Adream:
    state = "這是一個夢"

class YingMuHuaDao(Coach,Adream): #多重繼承
    def __init__(self):
        Coach.__init__(self,"教練")
    def dreaming(self):
        print("%s(%s):哈哈哈,你倆都被我繼承了!"%(Name,Adream.state))

# 運行時從這裏開始
coach = Coach("胖子")  #創建對象實例
liuChuanFeng = LiuChuanFeng()
Name = "櫻木花道"

print("%s:%s你是哪個?"%(Name,coach.CoachName))
coach.speak()
print("%s:你爲啥這麼高級的speak,我就會Print"%Name)
liuChuanFeng.speak()
print("%s:教練,我想學Python!"%Name)
liuChuanFeng.agree()
liuChuanFeng.coachAgree()
me = YingMuHuaDao()
me.dreaming()

總結

Python3的面向對象非常的簡單,而且取別於C#它可以實現多繼承。
容易混淆的地方在於self的使用,在類裏面,方法中所有的賦值操作一般都是針對於實例來言的,所以一定要使用self.Name = XXX 這樣來賦值,而不是Name = XXX,這個初學者很容易錯(別問我怎麼知道的
繼承會繼承方法與屬性,若執行了父級的方法存在對屬性的改變,則其實是在改變子級對象中的屬性值

class Coach():
	Name = "教練"
	def __init__(self,name:str): 
		self.Name = name
		
class LiuChuanFeng(Coach):
	Name = "流川楓"
   def __init__(self): 
   # 在Coach的初始化方法中對Name進行了賦值,這裏的self其實是LiuChuanFeng的實例
       Coach.__init__(self,"教練") 
       print(self.Name) # 輸出爲 教練 

.
.
.
.
.


嗨,我是作者Vin129,逐兒時之夢正在遊戲製作的技術海洋中漂泊。知道的越多,不知道的也越多。希望我的文章對你有所幫助:)


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