一、面向對象思想分析
1.思想:讓計算機圍繞着人的思維去執行,以符合人的思維習慣分析問題,解決問題
2.對象的定義:萬物皆對象,對對象的分析類似于分析對象的特征、行為及屬性。
例如:(1)人摔壞了杯子,如果杯子作為對象,特征有:材質、大小、價格、形狀及生産商等,杯子的行為:運動
(2)人在公園跑步,如果人作為對象,特征有:升高,體重,性别,年齡、工作等,人的行為:跑步
二、面向對象程式設計的步驟
(1)分析對象的特征與行為(可以是針對對象的具體操作),若有多個對像需關注對象之間的關系(如聚合、複合、依賴等)
(2)使用類定義對象代碼模闆
定義方式: class 對象名(對象名的首字母采用大寫的方式)
(3)執行個體化對象
示例1:圖書管理系統
class Book: #定義一個名為Book的類
# 相當于初始化函數、()中的為形參,self必不可少,後面的形參面熟對象的特征
def __init__(self,title,price,author,publisher):
self.title = title #擷取存儲在形參title中的值
self.price = price
self.author = author
self.publisher = publisher
def print_info(self): #類中的函數,也稱作方法
print("标題:{}".format(self.title))
print("标題:{}".format(self.price))
book1 = Book('python',39,'Peter','www') #建立執行個體
book1.print_info() #調用類中的方法(輸出方法print_nfo中的資訊)
print("This book name is :{}".format(book1.title.title()))#隻輸出book1的title
說明:可建立多個執行個體,調用方法參照示例
book2 = Book('c++',58,'Tom','www')
三、導入類
Python可以将類存儲在子產品中,然後在主程式導入所需的子產品
導入方法1:import----導入子產品的所有類
eg:import math
導入方法2:from 子產品名 import 類----導入一個子產品中的某一個類
eg:from modals import test
導入方法3 :from 子產品名 import 類 as 新類名----導入一個子產品中的某一個類,并對該類進行重命名
eg:from modals import test as M_test
import math
class Circle:
def __init__(self,radius):
self.raduis = radius
def get_area(self):
return math.pi * self.raduis ** 2
if __name__ == '__main__':
C1 = Circle(4.0)
print("半徑為4時圓的面積為:{}".format(C1.get_area()))
C2 = Circle(10.3)
print("半徑為10.3時圓的面積為:{}".format(C2.get_area()))
四、類的繼承----将共性拿出來,單獨建立一個類
import datetime
class Employee:
def __init__(self,name,age,depart,salary):
self.name = name
self.age = age
self.depart = depart
self.salary = salary
def _repr_(self): #定義在互動式提示符下的列印方式
return '<員工:{}>'.format(self.name)
def working(self):
print('員工:{},在工作'.format(self.name()))
class Programmer(Employee): #表明programmer類(子類)繼承自employee類(父類)
def __init__(self,name,age,depart,salary,special,project):
super().__init__(name,age,depart,salary)#針對單個類調用employee類中的__init__函數
self.special = special
self.project = project
def working(self):
print("程式員:{},在研發項目:{}".format(self.name,self.project))
if __name__ == '__main__':
P1 = Programmer('Peter',35,'技術支援',18000,'wu','Class')
print(P1.working())