物件導向基礎
物件導向程式設計(抽象)
回顧一下
面向過程程式設計(思想 )
流水線優點:邏輯清晰(邏輯一步步的,系統)
物件導向程式設計(思想)
物件: 特徵和技能的結合體
面對物件程式設計:乙個個物件進行互動
優點:擴張性非常強
缺點:邏輯非常複雜
類與物件
類(類別):一系列具有相同特徵和技能的物件
現實世界中先有物件,後有類
# 定義學生
# 姓名: 豬瑞星
# 學號: 222222
# 學校: oldboy
# 技能:選課,三十六變
# 姓名: 孔悟空
# 學號: 111111
# 學校: oldboy
# 技能:選課,七十二變
# 姓名: 雷公
# 學號: 666666
# 學校: oldboy
# 技能: 教課,piao
# 定義老師
# 姓名: tank
# 學校: oldboy
# 技能: 教課,piao
# 姓名: nick
# 學校: oldboy
# 技能:教課,看書
python中先有類,再有物件
class 類名(駝峰體): # 定義類,會直接執行類體內的**
# 定義一系列特徵
# 定義一系列方法
物件1 = 類名() # 例項化出物件
給物件定製獨有的特徵
class oldboystudent:
school = 'oldboy'
def __init__(self,name,age):
self.name = name
self.age = age
def choose_course(self):
print(' is choosing course')
stu1 = oldboystudent('gll',18)
stu1.school
stu2 = oldboystudent('nick',18)
stu2.school
物件的屬性查詢順序
# 區域性存在
class oldboystudent:
school = 'oldboy'
name ='nick'
def __init__(self,name,age):
self.name = name
self.age = age
def choose_course(self):
print('is choosing course')
stu1 = oldboystudent('gll',18)
print(stu1.name) # gll
stu2 = oldboystudent('nick',18)
print(stu2.name) # nick
# 區域性找不到
class oldboystudent:
school = 'oldboy'
name ='nick'
def __init__(self,name,age):
#self.name = name
self.age = age
def choose_course(self):
print('is choosing course')
stu1 = oldboystudent('gll',18)
print(stu1.name) # nick
stu2 = oldboystudent('nick',18)
print(stu2.name) # nick
類與物件的繫結方法
class oldboystudent:
school = 'oldboy'
def __init__(self,name,age):
self.name = name
self.age = age
def choose_course(self):
print(id(self)) #1983522658680
print(self.school)
print(f' is choosing course')
print(name)
stu1 = oldboystudent('gll',18)
stu1.choose_course() # self 是物件本身
print(id(stu1)) #1983522658680
oldboystudent.choose_course(stu1)
# 注:
# 針對類而言:choose_course裡的self就是傳的引數
# 針對物件而言:choose_course裡的self就是物件本身
類與資料型別
lis = [1,2,3]
lis2 =list([1,2,3])
# 下面兩式等同,理解引數self的概念
物件的高度整合
在類裡面封裝了一大堆特徵/資料,然後又封裝了一大堆方法(方法用來專門用來操控這些資料的),並且在這基礎上對於不同物件,這些屬性和方法有不一樣
class animal:
def __init__(self,attri,height,weight):
self.attri = attri
self.height = height
self.weight = weight
def jiao(self):
print('self.attr,'開始叫了')
def eat(self):
print('self.attri,'開始吃飯了')
people = animal('人類',180,140)
dog = animal('狗',100,50)
people.eat()
dog.jiao()
?累了就放鬆一下吧
Python學習筆記 1 1 2 認識Python
一.課程目標 二.詳情解讀 1.初識pythonpython語言是一種高階程式語言,它於1991年由吉多.範羅蘇姆 guido van rossum 發明。目前主要應用於web開發 gui開發 網路爬蟲 資料科學 人工智慧等領域。python官方 python語言也是一種多正規化程式語言,即物件導向...
python實現演算法 kmp演算法python實現
kmp演算法python實現 kmp演算法 kmp演算法用於字串的模式匹配,也就是找到模式字串在目標字串的第一次出現的位置 比如abababc 那麼bab在其位置1處,bc在其位置5處 我們首先想到的最簡單的辦法就是蠻力的乙個字元乙個字元的匹配,但那樣的時間複雜度會是o m n kmp演算法保證了時...
python呼叫qt Qt 下呼叫 Python
qt是乙個跨平台的c 圖形使用者介面應用程式框架,而python是一門非常強大的程式語言,本文主要介紹了如何在osx系統下qt呼叫python指令碼。先上 include 包含呼叫python相應的標頭檔案 include int main int argc,char ar 初始化python直譯器...