只要跟物件有關係的前面就要加self,物件導向操作的時候
作業系統,環境,開發軟體?
函式式開發和物件導向的開發的區別:
函式式開發在每次呼叫的時候都需要給引數傳參,
而物件導向的開發,可以把函式定義在型別裡面叫做方法,只需要在建立物件的時候傳一次參就可以了,
之後可以直接呼叫型別中的方法
面向過程的程式設計的核心是過程(流水線式思維),過程即解決問題的步驟,面向過程的設計就好比精心設計好一條
流水線,考慮周全什麼時候處理什麼東西。
優點是:極大的降低了寫程式的複雜度,只需要順著要執行的步驟,堆疊**即可。
缺點是:一套流水線或者流程就是用來解決乙個問題,**牽一髮而動全身。
在python 中物件導向的程式設計並不是全部。
物件導向程式設計可以使程式的維護和擴充套件變得更簡單,並且可以大大提高程式開發效率 ,另外,基於物件導向的程式可
以使它人更加容易理解你的**邏輯,從而使團隊開發變得更從容。
如果父類的屬性子類用不完怎麼辦?
一般沒有這種情況,寫型別之前要先分析,分析出來乙個型別定義一些公共的屬性為父類,
然後其他的類在父類的基礎上如果需要新增屬性再新增
理論都是在實踐之後得出來的,所以要想明白就多練
多繼承就是可以繼承多個型別,用於解決乙個物件有多個角色
檢視檔案的命令
import os
os.listdir("f:")
命令列用的是gbk編碼
繼承中,在子類方法之中加super().父類中的方法名,子類方法執行完之後就會執行父類的方法
**********************************
1) 繼承的語法結構
繼承的語法結構:
class 型別(要繼承的型別):
pass
當前型別:子類
要繼承的型別:父類
子類繼承父類
python中:型別的後面可以不新增括號[預設繼承了object型別]
class pet: == class pet(object): == class pet():
python中檢視自己到底繼承了哪些父類:
用魔法屬性:型別名._ _base_ _ 檢視當前型別繼承的父類
s._ _base__
怎麼檢視物件的當前型別:
通過型別的_ _class_ _魔法屬性,直接檢視,和type(型別名稱)效果一致!
物件名._ _class_ _ == type(物件)--> 得到當前物件的所屬型別
s._ _class_ _
怎麼檢視當前型別的所有子類:
通過型別的父類名._ _subclasses_ _()這個魔法函式,直接以列表的形式檢視當前型別的所有子類
person._ _subclasses_ _()
[, ]
(2) 繼承的意義
>> 子類中可以編寫父類中沒有的屬性和方法
實現功能的擴充套件!
>> 子類中可以重寫父類中已經在的方法【方法重寫】
執行該方法的過程中,如果子類沒有重寫該方法,執行父類的方法
如果子類重寫了該方法,直接執行子類的方法,方法名相同。
>>
> 方法過載:[python沒有方法過載]在乙個型別中,出現了兩個或者兩個以上
相同名稱的方法[引數不同],根據傳遞不同的引數執行不同的方法!
由於python弱型別語言的特性,已經在方法中具備了這樣的功能
python中沒有方法過載
非要給python新增乙個方法過載的概念的話:@[email protected]
如果繼承了父類之後,子類需要新增自己的屬性的話,需要把父類的屬性先傳遞給子類,傳遞方法
有兩種,具體**如下,在父類的基礎上新增了age屬性:
class zhishen(god):
def __init__(self, name, age):
#呼叫父類初始化函式~初始化父類資料
# god.__init__(self, name) # 型別呼叫 #這兩種方法效果一樣
super(zhishen, self).__init__(name) # 物件呼叫
**************************************
多繼承,乙個類繼承多個父類,【多繼承-廣度優先 vs 深度優先】,檢索是深度優先:
python的多繼承:體現的是 生活中 乙個物件 會有多個角色的概念
如果乙個型別繼承了多個類,這個型別裡面是pass,呼叫這個型別中的乙個方法的時候,會先
尋找繼承的第乙個父類中有沒有這個方法,如果有的話就直接呼叫第乙個父類中的那個方法,
如果繼承的第乙個父類中沒有那個那個方法的話就尋找第二個父類,這樣依次尋找,先深度再廣度。
lass a():
def __init__(self):
self.value = "型別aaaaaaaaaaa的value值"
def show(self):
print("型別aaaaaaaaaaaa中的show執行了")
class b(a):
pass
class c():
def __init__(self):
self.value = "型別ccccccccc中的value值"
def show(self):
print("型別ccccccccccccc中的show執行了")
class x(b, c):
pass
x = x()
x.show()
>>>>型別aaaaaaaaaaaa中的show執行了
2023年1月27日訓練筆記
今天主要做了做總結,先是自己做總結,然後下午和做數學的同學一塊做了總結和討論,感覺是很好的過程,每個人都更清楚了自己的不足,知道自己接下來該多去看什麼,大家也能更好地統一進度,接下來我要看polya定理的更多題型,莫比烏斯也要進一步理解,然後組合數學之前的東西也要再回顧一下。貼一下部分總結 高斯消元...
2023年7月19日學習筆記
整數型別 short 佔兩位元組的儲存空間,表數範圍為 32768 32768 最高位為符號位0表正1表負 unsigned short 無符號短整型,佔2個位元組的儲存空間,最高位位數值表數範圍為0 65535 int 佔4位元組,最高位為符號位 0表正,1表負 表數範圍為 2147483648 ...
7月27日學習日誌
學習日誌 姓名 郭富民 日期 2017.07.27 今日學習任務 除錯出昨日內容,寫出四個燈和四個按鈕 今日任務完成情況 今日任務已按計畫完成。翻閱gpio.h檔案,用提供的函式測量按鍵狀態並點亮相應的燈。今日開發中遇到的問題彙總 編譯時系統報錯 cannot open source input f...