python遇到物件 python 面對物件基礎

2021-10-19 22:12:31 字數 3049 閱讀 5148

物件導向基礎

物件導向程式設計(抽象)

回顧一下

面向過程程式設計(思想 )

流水線優點:邏輯清晰(邏輯一步步的,系統)

物件導向程式設計(思想)

物件: 特徵和技能的結合體

面對物件程式設計:乙個個物件進行互動

優點:擴張性非常強

缺點:邏輯非常複雜

類與物件

類(類別):一系列具有相同特徵和技能的物件

現實世界中先有物件,後有類

# 定義學生

# 姓名: 豬瑞星

# 學號: 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直譯器...