精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python-面向對象

汽車電子技術 ? 來源:程序猿知秋 ? 作者:程序猿知秋 ? 2023-02-16 15:20 ? 次閱讀

基本概念

面向過程

  • 是早期的一個編程概念,類似函數,但是沒有返回值
  • 具體做法:
    • 把完成某個需求的所有步驟,從頭到尾 逐步實現
    • 將某些功能獨立的代碼 封裝成一個又一個 函數
    • 然后順序調用不同的函數
  • 特點:
    • 注重 ** 步驟與過程,** 不注重職責分工
    • 如果需求復雜,代碼會變得很復雜
    • 開發復雜項目,沒有固定的套路,開發難度大

**面向對象

**

  • 相較于函數, 面向對象是更大的封裝 ,根據** 職責** 在一個對象中封裝多個方法
  • 在完成某個需求前,首選確定 ** 職責** ,根據職責確定不同的對象,在對象內部封裝不同的方法
  • 最后讓不同的對象調用不同的方法
  • 特點:
    • 注重 對象和職責 ,不同的對象承擔不同的職責
    • 更加適合對應復雜的需求變化,專門應對復雜項目開發,提供固定套路

**類和對象

**

  • 對象 是面向對象的兩個核心概念
  • 在程序開發中,先有 ,后有 對象
    • 對一群具有相同 特征 或 行為的事物的一個統稱,是抽象的,不能直接使用
      • 特征 即 屬性
      • 行為 即 方法(函數)
    • 類相當于做汽車的 圖紙是一個模板, 而根據這個 **模板 **做出來的具體物品就是 對象
    • 三要素
      • 類名 這類事物的名字 使用大駝峰命名法(HelloWorld)
      • **屬性 **指這類事物的特征
      • 方法 指這類事物具備的行為
  • 對象
    • **對象 **是根據類創建出來的一個具體存在,可以直接使用
    • 根據類創建出來的對象,具備與類相同的 屬性方法

**類和對象的關系

**

  • 類是模板,對象 是根據 **類 **這個模板創建出來的,先有類,后有對象
  • 類 只有一個,根據這個類創建的 對象 可以有多個
    • 不同的對象之間,屬性可能會各有不同
  • 類 中定義了什么樣的屬性和方法,對象中就是什么樣的屬性與方法

基礎語法

dir內置函數

  • Python 中,對象幾乎無所不在,變更、數據、函數都是對象
  • 使用內置函數** dir** 傳入 ** 標識符/數據** ,可以查看對象內的所有屬性和方法
  • 方法名 格式的方法是Python提供的 內置方法/屬性
  • 常見方法如下| 方法名 | 類型 | 作用 |
    | ------------------ | ---------------- | ---------------------------------------- |
    | new | 方法 | 創建對象時,會被自動調用 |
    | init | 方法 | 對象被初始化時,會被自動調用 |
    | del | 方法 | 對象被從內存中銷毀時,會被自動調用 |
    | str | 方法 | 返回對象的描述信息,print 函數輸出使用 |

示例

# 定義函數,測試內置方法
def demo():
  pass


print(dir(demo))

輸出結果

圖片

定義簡單類

  • **面向對象 **是更大的封裝,在一個類中封裝多個方法,通過這個類創建的對象 可以直接使用這些方法
  • 類中方法的定義,與之前定義函數時,幾乎一樣,區別在于每一個參數必須是 self,** self 表示調用者本身的引用**
  • 調用中對象中的方法時,self 不需要傳遞
  • 可以通過 self 調用對象的其它屬性或方法

示例

"""
需求:
定義一個狗類,狗有 吃骨頭,睡覺兩個方法


"""
class Dog:


  # 第一個參數 必須是 self,表示調用者本身的引用
  def eat(self):
    print("狗狗要吃骨頭了...")


  def sleep(self):
    print("狗狗要睡覺了...")


# 定義對象調用方法
dog=Dog()
dog.eat()
dog.sleep()


# 定義第二個 狗對象
dog2=Dog()
dog2.eat()
dog2.sleep()


# dog 和dog2 是用同一個類 創建出來的,里面的方法和屬性是一樣的,但是對象的引用是不同的
print(dog)
print(dog2)

輸出結果

圖片

對象的初始化

  • 當使用 類名() 創建對象時,會 自動 執行以下操作
    • 為對象分配內存空間
    • 為對象的屬性設置初始值(即調用 init 方法)
  • **init **是對象的內置方法,專門用來定義一個類 具有哪些屬性的方法

**示例

**

class Dog:


  def __init__(self,name):
    print("開始初始化Dog的屬性...")
    self.name=name


  def eat(self):
    print("%s 開始吃骨頭了..."%self.name)


  def sleep(self):
    print("%s 想要睡覺了..." %self.name)




# 定義對象,并為其屬性賦值
dog=Dog("小白")
dog.eat()
dog.sleep()


dog2=Dog("小黑")
dog2.eat()
dog2.sleep()

輸出結果

圖片

**內置方法

**

  • del 方法:當一個對象被從內存中銷毀時,會自動調用
  • 應用場景
    • init 改造初始化方法,可以讓對象更加靈活
    • del 如果希望對象在被銷毀前,再做一些事情,可以使用此方法
  • 生命周期
    • 一個對象從調用 類名() 創建,生命周期開始
    • 一個對象的 del 方法一旦被調用,生命周期結束
    • 在對象的生命周期內,可以訪問對象屬性,或者調用對象方法
  • str 方法: 默認打印 對象變量的引用內存地址值, 如果希望使用 print 輸出對象變量時,能夠打印 自定義的內容 ,就可以利用 str 方法,該方法必須返回一個字符串

示例

class Dog:


  def __del__(self):
    print("小黑去輪回了......")


  def __str__(self):
    return "我是小黑的自定義打印內容。。。"


dog=Dog()
print(dog)
print("---------------11111111111")

輸出結果

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3592

    瀏覽量

    93596
  • 函數
    +關注

    關注

    3

    文章

    4306

    瀏覽量

    62431
收藏 人收藏

    評論

    相關推薦

    Python面向對象編程詳解

    一般編程可分為面向過程編程,和面向對象編程。Python面向對象編程,與Java的
    發表于 09-04 16:35 ?524次閱讀
    <b class='flag-5'>Python</b>的<b class='flag-5'>面向</b><b class='flag-5'>對象</b>編程詳解

    labview面向對象編程

    點擊學習>>《龍哥手把手教你學LabVIEW視覺設計》視頻教程使用LabVIEW面向對象編程方法,對于大型測試應用程序來講,面向對象相對于面向
    發表于 11-24 11:01

    3分鐘看懂Python面向對象

    Python雖然是解釋型語言,但從設計之初就已經是一門面向對象的語言,對于Python來說一切皆為對象。正因為如此,在
    發表于 06-08 14:20

    面向對象編程及其三大特性 精選資料分享

    編程語言分為面向過程編程、函數式編程和面向對象編程。其實python就是一種面向對象編程,那么我
    發表于 07-21 08:38

    談談面向對象編程

    在工業自動化領域,梯形圖邏輯仍然是最常用的編程語言之一,但對于更加復雜的控制對象面向對象編程不失為一種高效率的方式。下面先來談談面向對象
    發表于 09-08 07:47

    面向對象編程總結

    如何從面向過程到面向對象OOP?面向對象是什么?有何特點?
    發表于 09-29 08:19

    請問python-樹莓派如何通過按鍵控制步進電機正反轉?

    步進電機驅動原理是什么?python-樹莓派如何通過按鍵控制步進電機正反轉?
    發表于 10-09 08:45

    面向對象編程介紹

    目錄一、面向對象編程介紹1.面向過程編程2.函數式編程3.面向對象編程二.面向
    發表于 12-13 07:22

    python-控制khr3hv-master機器人

    python-控制khr3hv機器人,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-22 15:40 ?2次下載

    這可能是Python面向對象編程的最佳實踐

    本節介紹了attrs和cattrs兩個庫,讓實現Python面向對象編程不再難。
    的頭像 發表于 06-22 12:07 ?2662次閱讀

    利用Python和PyTorch處理面向對象的數據集

    本篇是利用 Python 和 PyTorch 處理面向對象的數據集系列博客的第 2 篇。 如需閱讀第 1 篇:原始數據和數據集,請參閱此處。 我們在第 1 部分中已定義 MyDataset 類,現在
    的頭像 發表于 08-25 15:30 ?2954次閱讀

    利用 Python 和 PyTorch 處理面向對象的數據集(2)) :創建數據集對象

    本篇是利用 Python 和 PyTorch 處理面向對象的數據集系列博客的第 2 篇。我們在第 1 部分中已定義 MyDataset 類,現在,讓我們來例化 MyDataset 對象
    的頭像 發表于 08-02 17:35 ?902次閱讀
    利用 <b class='flag-5'>Python</b> 和 PyTorch 處理<b class='flag-5'>面向</b><b class='flag-5'>對象</b>的數據集(2)) :創建數據集<b class='flag-5'>對象</b>

    面向過程與面向對象的區別

    說起面向對象,大家可能會想到其他的,但是此對象非彼對象哈哈,不必驚慌,也特別好搞定。 在聽到面向
    的頭像 發表于 02-15 11:10 ?4073次閱讀
    <b class='flag-5'>面向</b>過程與<b class='flag-5'>面向</b><b class='flag-5'>對象</b>的區別

    Python中的類和對象詳解

    Python 是一種面向對象的編程語言,它支持類和對象。類是一種用戶自定義的數據類型,用于定義對象的屬性和方法。
    的頭像 發表于 04-20 16:53 ?1060次閱讀

    Python面向對象深化(下)

    __call__ ?方法和可調用對象 凡是可以將 () 直接應用到自身并執行, 都稱為可調用對象. 注意: 可調用對象包括自定義的函數、Python 內置函數、以及本節所講的實例
    的頭像 發表于 05-11 17:52 ?637次閱讀