Python包的管理和物件導向1

2021-10-02 11:13:04 字數 2945 閱讀 7263

一、包的管理

import:把整個包匯入過來

frommodelsimportpage:把models中的 page這個函式匯入過來

from models import * :把models中所有函式匯入過來

from models import test as test_as :把models中 test函式 改名成test_as 取別名

二、物件導向初步

三種程式設計典範

a.面向過程程式設計:面向過程程式設計的思想是讓程式從頭到尾一步步執行,環環相扣。就像3d列印,按照步驟,從底到高列印,但如果想修改整體的某一部分,則需要整體修改。

優點:使複雜的問題,流程化

缺點:可迭代性差

b.函式式程式設計:把要執行的**包裹成n個函式。要使用的時候,就呼叫相同功能的函式,可提高開發效率,便於維護。

c.物件導向程式設計:

此例子引用

張三、李四、王二麻子,他們的職業分別是老師、醫生、建造師,需要實現的功能是吃飯、說話、教書、**、建造。按照函式式程式設計的思想,這些功能就是函式

def

eat(name)

:pass

deftalk

(name)

:pass

defteach

(name)

:pass

deftreat

(name)

:pass

defbuild

(name)

:pass

# 三個人都能吃

eat(

'張三'

)eat(

'李四'

)eat(

'王二麻子'

)# 三個人都能說話

talk(

'張三'

)talk(

'李四'

)talk(

'王二麻子'

)#只有張三可以教書

teach(

'張三'

)#只有李四可以**

treat(

'李四'

)# 只有王二麻子可以建造

build(

'王二麻子'

)

但函式式程式設計有個缺陷,就是 張三李四王二麻子都能吃,都能說話。無非不過傳遞引數的時候換乙個人名,要是可以做出限制就好了,教師只能去教書,不能去**和建造,這就是物件導向程式設計的思想。

類(class):用來描述屬性和方法的集合。

方法:類中定義的函式

物件:類的例項化

醫生是統稱抽象的,就作類, 李四醫生(物件)具體而真實的存在。能夠進行吃、說話、**的方法,而不能教書。

下面以圖書作為例子

基本步驟

1.對圖書進行分析 (ooa)

圖書資訊: 標題 目錄 定價 作者…等等

2.類定義物件**

class book:

3.例項化(建立物件)也可理解成 給物件賦值

基本語法

類中函式的第乙個引數是固定表示物件的,與叫什麼無關,self是大家約定俗成的叫法而已,換成其他名稱也是可以的

class

book

:def

__init__

(self,title,price,author,publisher)

:#建構函式,給具體例項用

#self的含義book型別的不同的例項,book會有成千上萬個例項

self.title=title #定義的物件特徵,有什麼

self.price=price

self.author=author

self.publisher=publisher

book1=book(

'python',30

,'tom'

,'郵電出版'

)print

(book1.title)

print

(book1.publisher)

列印全部資訊

class

book

:def

__init__

(self,title,price,author,publisher)

:#建構函式,給具體例項用

#self的含義book型別的不同的例項,book會有成千上萬個例項

self.title=title

self.price=price

self.author=author

self.publisher=publisher

defprint_info

(self)

:print

('當前圖書的資訊如下:'

)print

('圖書名字為{}'

.format

(self.title)

)print

('圖書**為{}'

.format

(self.price)

)print

('圖書作者為{}'

.format

(self.author)

)print

('圖書出版社為{}'

.format

(self.publisher)

)book1=book(

'python',30

,'tom'

,'郵電出版'

)book1.print_info(

)

閉包和物件導向設計

物件以方法的形式包含了過程,而閉包則是在過程中以環境的形式包含了資料。通常用物件導向思想能實現的功能,用閉包也能實現。var extent function var extent extent extent.call 輸出 1 extent.call 輸出 2 extent.call 輸出 3換成物...

物件和物件導向

物件字面量 1 大括號包圍的部分 2 物件的質麵量就是乙個大括號 a var obj 鍵值對 b key 健 value 值 c key可以加 可以不加 d 健值對之間用 逗號隔開,不是分號 var obj2 console.log obj2.name obj2.fu json json 是資料格式...

Python 物件導向和面向過程的理解

物件導向 物件導向就是構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。面向過程 面向過程不同於物件導向,面向過程分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。面向過程 優點 效能比物...