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

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

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

3天內不再提示

Python面向對象深化(上)

麥辣雞腿堡 ? 來源:python都知道 ? 作者:了不起 ? 2023-05-11 17:51 ? 次閱讀

前言

哈嘍, 大家好, 我是了不起!

歡迎大家來觀看了不起的冒險之旅. 為了方便起見, 文中以小知為名. 講述了不起在Python異世界的冒險之旅.

天空之城是座高聳云端的城堡. 位于西海岸附近, 在城堡的最頂端可以眺望到天空之海. 直到格蘭之森那場大火的發生,使得圍繞在它周圍的魔法陣力量減弱,人們才終于重新看到天空之城的真實模樣. 當時,關于天界的傳聞甚至比天上的繁星還多,但是卻沒有一個人能夠證明它真實存在。


實例對象和類對象創建過程內存分析

我們以下面代碼為例,分析整個創建過程:

classStudent:

company="sxd"#類屬性

count=0#類屬性

def__init__(self,name,score):

self.name=name#實例屬性

self.score=score

Student.count=Student.count+1

defsay_score(self):#實例方法

print("我的公司是:",Student.company)

print(self.name,"的分數是:",self.score)

s1=Student("時間靜止",18)#s1是實例對象,自動調用__init__()方法

s2=Student("不是簡史",81)

s1.say_score()

print('一共創建{0}個Student對象'.format(Student.count))

print("s1的引用:",id(s1))

print("s2的引用:",id(s2))

print("Student的引用:",id(Student))

pYYBAGRcuk6AAcKEAAFo1aKJyGU270.png

默認的類方法

init構造方法和__new__ 方法

初始化對象, 我們需要定義構造函數__init__()方法 構造方法用于執行“實例對象的初始化工作”, 即對象創建后, 初始化當前對象的相關屬性, 無返回值 如果將對象比作一座房子, 則構造方法(__init__)是負責初始化(裝修) , 不是建對象(房子)

__init__()的要點如下(約等于Java的構造方法):

  1. 名稱固定, 必須為: __init__()
  2. 第一個參數固定, 必須為: self.self指的就是剛剛創建好的實例對象
  3. 構造函數通常用來初始化實例對象的實例屬性 通過“類名(參數列表)”來調用構造函數. 調用后, 將創建好的對象返回給相應的變量. 比如: s1 = Student("時間靜止", 80)
  4. __init__()方法: 初始化創建好的對象,初始化指的是: "給實例屬性賦值"
  5. 如果我們不定義__init__方法, 系統會提供一個默認的__init__方法. 如果我們定義了帶參的__init__方法, 系統不創建默認的__init__方法
  6. __new__()方法: 用于創建對象, 但我們一般無需重定義該方法

注意:

  • Python中的 self 相當于C++中的 self指針 , JAVA和C#中的 this 關鍵字
  • Python中, self 必須為構造函數的第一個參數, 名字可以任意修改, 但一般都叫做 self.他的作用是指向當前對象的本身/當前對象的引用

__del__方法(析構函數)和垃圾回收機制

__del__()稱為“析構方法”, 用于實現對象被銷毀時所需的操作. 比如: 釋放對象占用的資源, 例如: 打開的文件資源、網絡連接等

注意:

  1. Python實現自動的垃圾回收, 當對象沒有被引用時(引用計數為0), 由垃圾回收器調用__del__()
  2. 我們也可以通過 del語句 刪除對象, 從而保證調用__del__()
  3. 系統會自動提供__del__方法 , 一般不需要自定義析構方法.

實操代碼

classPerson:

def__del__(self):

print("銷毀對象:{0}".format(self))

p1=Person()

p2=Person()

delp2

print("程序結束")

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

    關注

    30

    文章

    4750

    瀏覽量

    68357
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84456
收藏 人收藏

    評論

    相關推薦

    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

    LabVIEW面向對象的ActorFramework(1)

    ` 本帖最后由 bollworm 于 2020-2-10 14:54 編輯 本系列文章主要闡述以下幾個問題:(1)什么是面向對象編程?(2)為什么要學習面向編程?(3)LabVIEW面向
    發表于 02-10 14:09

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

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

    談談面向對象編程

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

    面向對象編程總結

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

    面向對象編程介紹

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

    網絡講壇:面向對象的編程()-labview視頻教程

    網絡講壇:面向對象的編程()-labview視頻教程
    發表于 03-26 16:41 ?252次下載

    這可能是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 ?903次閱讀
    利用 <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次閱讀