類是多個類似事務組成的群體的統稱,能夠幫助我們快速理解和判斷事務的性質
面向過程
物件導向
區別:面向過程:事務比較簡單,可以用線性的思維去解決,親力親為
物件導向:事務比較複雜,用簡單的線性思維無法解決
共同點:面向過程和物件導向都是解決實際問題的一種思維方式
總結:物件導向和面向過程相輔相成,二者不是對立的,解決複雜問題,需要通過物件導向的方式在巨集觀上把握事務之間複雜的關係,方便我們分析整個系統;具體到微觀操作,使用物件導向的方式來處理。
使用class定義
由類屬性,類方法,例項方法,靜態方法組成
class
student
:# student 為類名,由乙個或多個單詞組成,每個單詞首字母大寫,其餘小寫
native_place =
'河北'
# 直接寫在類裡的變數,稱為類屬性
def__init__
(self,name,age)
: self.name = name # self.name稱為實體屬性,進行了乙個賦值的操作,將區域性變數name的值賦給例項屬性
self.age = age
# 例項方法
defeat
(self)
:print
('學生在吃飯....'
)# 靜態方法
@staticmethod
defmethod()
:print
('使用staticmethod進行修飾,是靜態方法'
)# 類方法
@classmethod
defcm
(cls)
:print
('使用classmethod進行修飾,是類方法'
)# 在類之外定義的稱為函式,在類之內定義的稱為方法
defdrink()
:print
('學生在喝水。'
)# 類屬性的使用方式
print
(student.native_place)
# 例項方法的使用方式
stu1 = student(
'張三',20
)student.eat(stu1)
print
('-------類方法的使用方式----------------'
)student.cm(
)print
('-------靜態方法的使用方式----------------'
)student.method(
)
1.通過類名()建立例項物件
2.動態繫結屬性
3.動態繫結方法
class
student
:def
__init__
(self,name,age)
: self.name = name
self.age = age
defeat(self)
:print
(self.name,
'在吃飯'
)stu1 = student(
'張三',20
)stu2 = student(
'李四',30
)print(id
(stu1)
)print(id
(stu2)
)print
('--------為stu2動態的繫結性別屬性-------------'
)stu2.gender =
'女'#print(stu1.name,stu1.age,stu1.gender)
print
(stu1.name,stu1.age)
print
(stu2.name,stu2.age,stu2.gender)
print
('-------------------------'
)stu1.eat(
)stu2.eat(
)def
show()
:print
('定義在類之外的函式'
)stu1.show = show
stu1.show(
)'''
2008662890048
2008663751072
--------為stu2動態的繫結性別屬性-------------
張三 20
李四 30 女
-------------------------
張三 在吃飯
李四 在吃飯
定義在類之外的函式
'''
第十二章 物件 下
第十二章 物件 下 12.5.1 通過 isa 繼承 package mule our isa horse donkey perl 將首先在horse 裡 和他的任何前輩類裡,比如critter 查詢任何在mule裡找不到的方法,找不到以後才繼續在donkey 和其父類裡進行查詢。如果缺失的方法在乙...
第十二章 檔案
文字檔案 文字檔案是一種由若干字元構成的檔案,可以用文字編輯器進行閱讀或編輯。以txt py html等為字尾的檔案都是文字檔案。2.二進位制檔案 二進位制檔案一般是指不能用文字編輯器閱讀或編輯的檔案。以 mp4 png等為字尾的檔案都是二進位制檔案,如果想要開啟或修改這些檔案,必須通過特定軟體進行...
第十二章 dp
動態規劃策略 將原始問題拆分為多個子問題,將子問題結果記錄,方便復用子問題的解 遞迴 記憶化 遞推 是動態規劃的一體兩面,本質都是一樣的 遞推減少了呼叫次數,空間上還能優化,一般選擇遞推方式 遞迴 記憶化 int memo maxn 將o 2 n o n intfibonacci int n 遞推 ...