日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python面向过程学习笔记

發布時間:2023/12/20 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python面向过程学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python面向過程

  • 類和對象

  • 類和對象的概念
    • 類 是對一群具有相同 特征 或者 行為的事物的一個統稱,是抽象的,不能直接使用
      • 特征被稱為屬性
      • 行為被稱為方法
    • 對象是由類創建出來的一個具體存在,可以直接使用
      • 由哪一個類創建出來的對象,就擁有在哪一個類中定義的屬性和方法
  • 類和對象的關系
    • 類是模板,對象是根據 類這個模板創建出來的,應該現有類,再有對象
    • 類只有一個,而對象可以有很多個
      • 不同對象之間的屬性可能會有不同
    • 類中定義了什么屬性和方法,對象中就有什么屬性和方法,不可能多,也不可能少
  • 類的設計
  • 一個類通常滿足以下三個要素:
    • 類名:這類事物的名字,滿足大駝峰命名法
    • 屬性:這類事物具有什么樣的特征
    • 方法:這類事物具有什么樣的行為
  • 面向對象基礎語法

  • dir內置函數

  • 在標識符/數據 后輸入一個. ,然后按下TAB鍵,IPYTHON會提示該對象能夠調用的方法列表
  • 使用內置函數dir傳入標識符/數據,可以查看對象內的所有屬性及方法
  • 提示:__方法名__格式時python提供的內置方法/屬性

    序號方法名類型作用
    01__ new __方法創建對象時,會被自動調用,為對象分配空間
    02__ int__方法對象被初始化時,會被自動調用
    03__ del __方法對象被從內存中銷毀前,會被自動調用
    04__ str __方法返回對象的描述信息,print函數輸出使用
  • 定義簡單的類(只包含方法)

    class 類名:def 方法1(self,參數列表):passdef 方法2(self,參數列表):pass
  • 創建對象

  • 當一個類定義完成后,要使用這個類來創建對象,語法格式如下:
  • 對象變量=類名()
  • 方法中的self參數

  • 在類的外部給對象增加屬性
  • 利用self在類封裝的方法
  • 由哪一個對象條用的方法,方法內的self就是哪一個對象的引用
    • 在類封裝的方法內部,self就表示當前調用方法的對象自己
    • 在調用方法時,不需要傳遞self參數
    • 在方法內部
      • 也可以通過self,訪問對象的屬性
      • 也可以通過self,調用其他的對象方法
  • 初始化方法

  • 之前的代碼存在的問題—在類的外部給對象增加屬性

    • 在日常開發中,不推薦在類的外部給對象增加屬性
      • 如果在運行時,沒有找到屬性,程序會報錯
    • 對象應該包含由哪些屬性,應該封裝在類的內部
  • 初始化方法

    • 當使用類名()創建對象時,會自動執行以下操作:
      • 為對象在內存中分配空間 — 創建對象
      • 為對象的屬性設置初始值 — 初始化方法(init)
    • 這個初始化方法就是__init__方法,__init__是對象的內置方法
      • __init __方法是專門用來定義一個類具有哪些屬性的方法
  • 在初始化方法內部定義屬性

    • 在__init __方法內部使用self.屬性名 = 屬性的初始值就可以定義屬性
    • 定義屬性后,再使用cat類創建的對象,都會擁有該屬性
  • 改造初始化方法—初始化的同時設置初始值

    • 在開發過程中,如果希望在創建對象的同時,就設置對象的屬性,可以對__init __方法進行改造
    • 在方法內部使用self.屬性 = 形參接收外部傳遞的參數
    • 在創建對象時,使用類名(屬性1,屬性2…)調用
  • 內置方法和屬性

    方法名類型作用
    __ del __方法對象被從內存中銷毀前,會被自動調用
    __str __方法返回對象的描述信息,print函數輸出使用
  • 身份運算符

    身份運算符用于比較兩個對象內存地址是否一致 — 是否是對同一個對象的引用

    • 在python中針對none比較時,建議使用is判斷
    運算符描述實例
    isis是判斷兩個標識符是不是引用同一個對象x is y,類似id(x)==id(y)
    is notis not是判斷兩個標識符是不是引用不同對象x is not y,類似id(a) ≠id()

    is 與==區別:

    is用于判斷兩個變量引用對象是否為同一個

    ==用于判斷引用變量的值是否相等

  • 私有屬性和私有方法(在python中,并沒有真正意義上的私有)

  • 應用場景:在實際開發中,對象的某些屬性或方法可能只希望在對象的內部被使用,而不希望在外部被訪問到
  • 定義方式:在定義屬性或方法時,在屬性名或者方法名前增加兩個下劃線,定義的就是私有屬性或方法
  • 繼承

  • 單繼承
  • 多繼承
    • 子類可以擁有多個父類,并且具有所有父類的屬性和方法
    • 如果父類之間存在同名的屬性或方法,應該盡量避免使用多繼承
  • 繼承語法

    class 類名(父類名):pass
    • 子類繼承自父類,可以直接享受父類中已經封裝好的方法,不需要再次開發
    • 子類中應該根據職責,封裝子類特有的屬性和方法

    c. 方法重寫

    • 應用場景:當父類的方法實現不能滿足子類需求時,可以對方法進行重寫(override)
    • 重回父類方法有兩種情況:
      • 覆蓋父類的方法
        • 直接在子類中定義一個和父類同名的方法并且實現
      • 對父親方法進行擴展
        • 在子類中重寫父類的方法
        • 在需要的位置使用super().父類方法來調用父類方法的執行
        • 代碼其他的位置針對子類的需求,編寫子類特有的代碼實現
  • 類方法和靜態方法

  • 類方法

  • 類屬性就是針對類對象定義的屬性
    • 使用賦值語句在class關鍵字下方可以定義類屬性
    • 類屬性用于記錄與這個類相關的特征
  • 類方法就是針對類對象定義的方法
    • 在類方法內部可以直接訪問類屬性或者調用其他的類方法
  • @classmethod def 類方法(cls):pass
    • 類方法需要修飾器@classmethod來標識,告訴解釋器這是個類方法
    • 類方法的第一個參數應該是cls
      • 哪一個類調用的方法,方法內的cls就是哪一個類的引用
      • 這個參數和實例方法的第一個參數是self類似
      • 提示:使用其他名稱也可以 ,不過這是習慣
    • 通過類名.調用類方法,調用方法時,不需要傳遞cls參數
    • 在方法內部
      • 也可以通過cls,訪問類的屬性
      • 也可以通過cls,調用其他的類的方法

    b. 靜態方法

    使用條件:

    • 既不需要訪問實例屬性或者調用實例方法
    • 也不需要訪問類屬性或者調用類方法
    @static method def 靜態方法名():pass

    總結:

    • 實列方法—方法內部需要訪問實列屬性
      • 實列方法 內部可以使用類名.訪問類屬性
    • 類方法 — 方法內部只需要訪問類屬性
    • 靜態方法—方法內部,不需要訪問實列屬性和類屬性
  • 單例

  • 單例設計模式

    • 設計模式
      • 設計模式是前人工作的總結和提煉,通常,被人們廣泛流傳的設計模式都是針對某一特定問題的成熟的解決方案
      • 使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性
    • 單例設計模式
      • 目的—讓創建的對象,在系統中只有唯一的一個實例
      • 每一次執行類名()返回的對象,內存地址是相同的
    • 應用場景
      • 音樂播放對象
      • 回收站對象
      • 打印機對象

    __ new__方法

    • 使用類名()創建對象時,python解釋器首先會調用__new __方法為對象分配空間
    • __new __是一個由object基類提供的內置的靜態方法,主要作用有兩個:
      • 在內存中為對象分配空間
      • 返回對象的引用
    • python的解釋器獲得對象的引用后,將引用作為第一個參數,傳遞給__init __方法

    重寫__ new__方法的代碼非常固定

    • 重寫__new 方法一定要return super().__ new__(cls)
    • 否則python的解釋器得不到分配了空間的對象引用,就不會調用對象的初始化方法
    • 注意:__ new__是一個靜態方法,在調用是需要主動傳遞cls參數
  • 異常

  • 捕獲異常

  • 簡單的捕獲異常語法

    try:嘗試執行的代碼 except:出現錯誤的處理
  • 錯誤類型捕獲

    try:#嘗試執行的代碼 except 錯誤類型1:#針對錯誤類型1,對應的代碼處理pass except (錯誤類型2,錯誤類型3):#針對錯誤類型2和3,對應的代碼處理pass except Exception as result:print("未知錯誤%s" %result )
    • 當python解釋器拋出異常時,最后一行錯誤信息的第一個單詞,就是錯誤類型
  • 完整語法

    try:#嘗試執行的代碼 except 錯誤類型1:#針對錯誤類型1,對應的代碼處理pass except (錯誤類型2,錯誤類型3):#針對錯誤類型2和3,對應的代碼處理pass except Exception as result:print("未知錯誤%s" %resykt ) else:#沒有異常會執行的代碼pass finally:#無論是否出現錯誤,都會執行的代碼pass
  • 異常的傳遞

    在開發中,可以在主函數中增加異常捕獲,而在主函數中調用的其他函數,只要出現異常,都會傳遞到異常捕獲中,這樣就不需要在代碼中,增加大量的異常捕獲,能夠保證代碼的整潔

  • 拋出raise異常

  • 創建一個exception對象
  • 使用raise關鍵字拋出異常對象
  • python中每一個模塊都有一個內置屬性__file__可以查看模塊的完整路徑

    __ name__屬性:可以做到只在測試情況下被運行,而在被導入時不會執行

    if __name__ = "__main__":
  • 包(package)

    包是一個包含多個模塊的特殊目錄,目錄下有一個特殊的文件 __ init__.py。包名的命名方式和變量名一致,小寫字母+_

    好處:使用import 包名 可以一次性導入包中所有模塊

    __ init__.py要在外界使用包中的模塊,需要在__ init__.py中指定對外界提供的模塊列表

    #從當前目錄導入模塊列表 from . import send_message
  • 制作發布壓縮包步驟

  • 創建setup.py

    from distutils.core import setup setup(name=''#包名version=''#版本description=''#描述信息long_description=''#完整描述信息author=''#作者author_email=''#作者郵箱url=''#主頁py_modules=[])
  • 構建模塊

  • $ python3 setup.py build

    c. 生成發布壓縮包

    $python3 setup.py sdist

    d. 安裝模塊

    c.卸載模塊:直接從安裝目錄下,把安裝模塊的目錄刪除就可以

  • 文件

  • 文件的概念和作用

  • 概念:就是存儲在某種長期存儲設備上的一段數據(硬盤、U盤、移動硬盤、光盤)
  • 作用:將數據保存下來,在需要的時候使用
  • 文件的存儲方式:以二進制的方式保存在磁盤上

  • 操作文件的函數/方法

    函數說明
    open打開文件,并且返回文件操作對象
    read將文件內容讀取到內存
    write將指定內容寫入文件
    close關閉文件
  • read方法—讀取文件

    #1.打開-文件名需要注意大小寫 file = open('README') #2讀取 text = file.read #3.關閉 file.close()
  • 寫入文件

    訪問方式說明
    r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。如果文件不存在,拋出異常
    w以只寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創建新文件
    a以追加方式打開文件。如果該文件已存在,文件指針將會放在文件的結尾。如果文件不存在,創建新文件進行寫入
    r+以讀寫方式打開文件。文件的指針將會放在文件的開頭。如果文件不存在,拋出異常
    w+以讀寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創建新文件。
    a+以讀寫方式打開問價。如果該文件已存在,文件指針將會放在文件的結尾。如果文件不存在,創建新文件進行寫入。
    #1.打開 file = open('README') #2.寫入文件 file.write('hello') #3.關閉 file.close()

    iii. 按行讀取文件內容

    readline方法:

    • readline方法可以一次讀取一行內容
    • 方法執行后,會把文件指針移動到下一行,準備再次讀取

    iv. 文件/目錄的常用管理操作

    文件操作

    方法名說明示例
    rename重命名文件os.rename(源文件,目標文件名)
    remove刪除文件os.remove(文件名)

    目錄操作

    方法名說明示例
    listdir目錄列表os.listdir(目錄名)
    mkdir創建目錄os.mkdir(目錄名)
    rmdir刪除目錄os.rmdir(目錄名)
    getcwd獲取當前目錄os.getcwd()
    chdir修改工作目錄os.chdir(目標目錄)
    path.isdir判斷是否是文件os.path.isdir(文件路徑)
  • eval函數

  • eval函數十分強大—將字符串當成有效的表達式來求值并返回計算結果

    #基本的數學計算 eval("1+1")2 #字符串重復計算 eval('*'*10)

    在開發時,千萬不要使用eval直接轉換input的結果

    總結

    以上是生活随笔為你收集整理的python面向过程学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久99精品国产麻豆婷婷 | 欧美无极品 | 欧美黑人一区 | 国产精品v亚洲精品v日韩精品 | 久久少妇视频 | 欧美最猛性xxxxx(亚洲精品) | 亚洲区一区二区 | 三级自拍| 欧美天堂 | 绿帽在线| 欧美操操操 | 杏导航aⅴ福利网站 | 久久亚洲成人 | 午夜精品国产精品大乳美女 | 四虎最新网址在线观看 | 国产精品h| 精品美女www爽爽爽视频 | 久久精品伊人 | 色月婷婷 | 国产伦精品一区二区三区视频免费 | 91在线日韩| 2020自拍偷拍| 91精品视频免费看 | 在线观看你懂的网址 | 亚洲啊啊啊啊啊 | 国产电影免费观看高清完整版视频 | av免播放器在线观看 | 欧美日韩成人一区二区三区 | 精品无码人妻一区二区三 | 亚洲精品日韩综合观看成人91 | 又色又爽又高潮免费视频国产 | 欧美一区二区三区 | 深夜成人福利视频 | 99在线免费视频 | 天狂传说之巴啦啦小魔仙 | 亚洲另类av| 亚洲最大成人在线视频 | 激情自拍视频 | 中文字幕无码不卡免费视频 | a级片在线视频 | 欧美视频免费在线 | 粉嫩av一区二区三区免费观看 | 久本草精品| 动漫美女被到爽流 | 天堂激情网| 久色视频在线观看 | 我要操婊 | 成人毛片观看 | 黄网站欧美内射 | 午夜激情在线视频 | 国产一区不卡在线 | 亚洲春色一区二区三区 | 在线天堂一区 | 久久久久久久久久艹 | 国产无码精品视频 | 久操热 | 午夜精品久久久久久久96蜜桃 | 国内av在线播放 | 欧美日韩午夜爽爽 | 求av网址| 少妇一区二区三区四区 | 久久av资源网 | 在线国产黄色 | 精品1卡二卡三卡四卡老狼 日韩三级网 | 天天色成人网 | 国产激情文学 | 亚洲第一看片 | 日韩日b| h视频免费在线观看 | 女人张开腿让男人桶爽 | 亚洲AV无码成人精品区明星换面 | 中文视频在线观看 | 一级欧美在线 | 日本中文字幕在线不卡 | 国产丝袜高跟 | 久久久久久久久久久久久久久久久久久 | 色悠悠国产精品 | 国产在线高清 | 亚洲24p | 97在线观看视频免费 | 国产精品久久久久久婷婷天堂 | 天码人妻一区二区三区在线看 | 久久久久亚洲av片无码下载蜜桃 | 亚洲aaaaaaa| 日韩天堂av | 无码人妻aⅴ一区二区三区有奶水 | 国产精品探花一区二区三区 | 老太太av| 中文字幕一区二区在线播放 | 无码少妇精品一区二区免费动态 | 超碰在线色| 成片免费观看视频大全 | 国产后入又长又硬 | 亚洲性图一区二区 | jizz黄色片 | 蜜桃精品一区二区 | 男女免费看 | 色四月| 开心色99|