天天看點

Python基礎學習----面向對象基礎

一、面向對象思想分析

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())