程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python編程進階——面向對象

編輯:Python

目錄

  • 1.面向對象
  • 2.魔法方法
  • 3.作業:


1.面向對象

# 萬物皆對象
# 封裝代碼的方法,封裝更先進
# 面向對象,從面向過程的基礎發展過來的,比面向過程更具有靈活性和擴展性
# 面向過程:面向對象 編程解決問題的一種方式,都是指對同一個問題的不同解決方式
# 把大象裝進冰箱:3步
# 1.打開冰箱門
# 2.把大象裝進冰箱
# 3.關閉冰箱門
# 學生管理系統面向過程,添加修改刪除查詢工具獨立封裝成一個個的函數,最後使用有順序的去調用不同的函數
# 日常思維去做
# 面向過程思維
# 2.把大象裝進冰箱
# 3.關閉冰箱門
# 1,打開冰箱門
# 使用的時候 1.打開冰箱門 2.把大象裝進冰箱 3.關閉冰箱門
# 流水線思維 wev自動化公開課 線性代碼 實現百度搜索
# 1.打開谷歌浏覽器 2.訪問百度 3.找到輸入框輸入搜索內容 4.找到搜索按鈕進行點擊
# 面向對象: 創建一個對象 把要做的事情交給這個對象去做
# 創建一個對象
# 冰箱對象
# 冰箱有打開門的方法
# 冰箱有裝東西的方法(大象,零食,飲料)
# 冰箱有關閉的方法
# 編程解決問題的方案
# 面向對象: 側重的誰來做
# 面向過程: 一條流水線,從頭到尾一套流程有順序的去解決問題
# 面向對象,面向過程 方式更好:學習的思維 簡單代碼 不復雜的流程 面向過程做 元素定位 (追蹤報錯)
# 1.打開谷歌 2.訪問登錄頁 3.找到輸入框輸入用戶,密碼點擊登錄,搜索手機,手機添加到購物車
# 復雜的流程 面向對象的思維去做
# 面向對象pom頁面對象
# 登錄一個頁面對象 登錄頁 找用戶名輸入框 找密碼輸入框 找登錄按鈕 登錄的整個流程 加了個流程 驗證碼
# 添加到購物車頁 找顏色 找數量
# 有幾個學生,第一個學生:
# 小李,年齡18歲,性別女 會打游戲,會打羽毛球
# 小明,年齡20歲,性別男,會吃雞,會打籃球
# 彎彎,年齡60歲,性別女,會做飯,會織毛衣
#面向過程去寫
# 定義一個小李,年齡18歲,性別女 會打游戲,會打羽毛球
# 定義一個小明,年齡20歲,性別男,會吃雞,會打籃球
# 定義一個彎彎,年齡60歲,性別女,會做飯,會織毛衣
# 獲得小李的信息
# 調用小李的函數就行
# 小明的函數
# 面向對象去寫
# 學生對象
# 學生:名字,年齡,性別 會打游戲 會打羽毛球 會吃雞 會打籃球 會做飯 會織毛衣
# 創建('小李',18,女)會打游戲 會打羽毛球
# ('彎彎',60,女)會做飯 會織毛衣
# 創建多少個學生 給他多少學生 學生有多少技能多少技能
# 面向對象: 了解到兩個名稱
# 類:具有共同特征或者相同行為的事物的一個統稱
# 鳥類: 特征: 有翅膀,有兩只腳,有一雙眼睛,心髒為四室,體溫為恆溫
# 行為:會飛,會吃蟲子
# 特征被稱為:屬性
# 行為稱為: 方法
# 類是抽象 不能指具體的事物,就是總的一個模板
# 對象: 具體的某一個東西 具體的樓下阿姨家的鹦鹉,隔壁小王家的麻雀 不同具體的對象
# 定義類
''' class 類名: 類屬性 類方法 def 方法1(self): pass def 方法2(self): pass 類屬性: 事物的特征 類方法: 事物具有的行為 類名: 第一個首字母大寫Bridge '''
# 游戲,游戲中有幾只貓,都是20kg,顏色都是白色,所以我有幾只20斤的白貓,一只白貓會抓老鼠
# 一只白貓會吃魚,一只白貓會吃魚又會抓老鼠又會打洞
# 寫?面向過程?定義3只貓
# 面向對象: 創建一個模板 也就是類
# 創建每一只貓,體重,顏色,給貓取個名字都自己去改變
# 用init初始化函數 作用 只要創建類對象,就會執行這個init
# def test(參數,參數):
# 變量名=參數
# name是翠花 weight是20 color是黑白灰
class Cat:
def __new__(cls,*args,**kwargs):
return object.__new__(cls)
def __init__(self,name,weight,color):
#翠花賦值給self.name,所以self.name是翠花.然後self是代表對象本身,所以tom1.name 翠花
self.name = name
self.weight = weight
self.color = color
def catch(self):
print(f'{
self}小{
self.color}貓抓老鼠')
def eat(self):
print('小白貓愛吃魚')
def cave(self):
print('小白貓會打洞')
def __str__(self):
return f'這是一個對象的描述信息:{
self.name}{
self.color}貓的悲傷故事'
def __del__(self):
print(f'{
self.name}小貓掛了')
# 白貓類的所有特征
# 類不能夠直接使用
# 創建具體的對象 也就是實例化對象 對象名=類() 對象名.方法名 對象名.屬性
# tom小白貓
# self 不知道 斷點看看 self像是對象地址 self好像是對象
# 創建了一個對象 self就能區分你是哪個對象
tom1 = Cat()
tom1.catch()
# 創建出來一只具體的會抓老鼠的貓
print('-'*50)
tom2 = Cat()
tom2.eat()
# 創建出來一只具體的會吃魚的貓
print('-'*50)
tom3 = Cat()
tom3.eat()
tom3.catch()
tom3.cave()
# 創建出來一只具體的會吃魚又會抓老鼠又會打洞的貓
# 這是3只貓 不確定是不是3只貓 監測是不是三只貓? id檢測
print(tom1,id(tom1))
print(tom2,id(tom2))
print(tom3,id(tom3))
# 貓都是白色的,能不能搞特殊,有一只貓長著變異 黑白貓
# 改變貓的屬性
tom1 = Cat()
tom1.cat_color = '黑白'
tom1.catch()
tom2 = Cat()
tom2.catch()
# tom1就是self
tom1 = Cat('翠花','20','黑白灰')
print('名字為{}的小{}貓的故事'.format(tom1.name,tom1.color))
print(tom1)
# 想要tom1打印出來的是我自己自定義的東西
tom1.catch()
tom2 = Cat('月下','20','月下貓')
print('名字為{}的小{}貓的故事'.format(tom2.name,tom2.color))
# 在項目中什麼時候會用到init函數 創建一個對象 用到對象裡面的內容 之前我一定要干啥
# 一定要干的事情就寫在init裡面
# 數據庫配置 數據庫的鏈接

2.魔法方法

# 用init初始化函數 作用 只要創建類對象,就會執行這個init
# __str__對象描述方法,只要定義了__str__方法,對象就會打印這個方法中的return
# __del__銷毀對象,不管寫不寫del函數,都會銷毀
# __new__創建類的對象

3.作業:

# 題目:去銀行存取錢
# 二狗 銀行賬號123456789 余額500 想要存錢200
# 虛竹 銀行賬號23456789 余額5 想要取錢100
# 秋水 銀行賬號3456789 余額5億 想要存錢1億
class Bank:
def __init__(self,username,card_no,balance):
self.username = username
self.card_no = card_no
self.balance = balance
# 存錢
def deposit(self,amount):
print('{}你是來存錢的,存{}'.format(self.username,amount))
self.balance = self.balance + amount
# 取錢
def withdrawal(self,amount):
print('我是來取錢的,取{}'.format(amount))
if self.balance >= amount:
self.balance = self.balance - amount
else:
print('想錢想瘋了,快走')
def __str__(self):
return f'我是{
self.username},我的賬戶{
self.card_no},我的余額{
self.balance}'
# 原本500,存了200,余額是沒有變
ergou = Bank('二狗','123456789','500')
ergou.deposit(200)
print(ergou)
# 原本賬號5塊錢 想取100塊 沒門 提示 判斷賬戶余額大於等於取錢余額,讓你取,記得把賬號裡面減掉,讓你取,否則想錢想瘋了
xuzhu = Bank('虛竹','123456789','5')
xuzhu.withdrawal(100)
print(xuzhu)
# 剩下的邏輯
# 二狗存錢,存了之後賬號裡面的錢沒增加
# 虛竹取錢,取了超過他的余額他還有錢
# 面向對象
# 類和對象 創建類 實例化對象才能使用
# self代表的是自己的
# init函數 del str
# 1.#減肥成長記 類和對象
# 小明 體重 80公斤 160斤
# 1.小明每次跑步 會減肥0.5公斤
# 2.每次吃東西 體重會增加1公斤
# 名字 星辰 寒燈
class Person:
def __init__(self,name,weight):
self.name = name
self.weight = weight
# 減肥給個次數
def run(self,num):
print('%s愛跑步,跑步減肥,減0.5斤'%(self.name,self.weight))
self.weight = self.weight - 0.5*num
# 吃東西時 給個次數 不確定
def eat(self,num):
print('%s愛吃東西,一吃就胖,一胖就胖1斤'%(self.name,self.weight))
self.weight=self.weight+1*num
def __str__(self):
return "我的名字叫%s,體重%.2f"%(self.name,self.weight)
# 創建對象 對象名=類名()
x = Person('星辰',80)
print(x)
#吃東西 吃的方法 每次吃東西 體重會增加1斤 原來的體重上面要加1斤
x.eat()
print(x)
x.run()
print(x)
#星辰一天吃三頓,3頓都沒有運動,10頓
x.eat()
x.eat()
x.eat()
x.eat(3)
print(x)
x.run(3)
print(x)# 

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved