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