掌握Python的X篇_37_類的實例化、類方法

上篇我們已經學習了python中的類,并且學習到可以通過class關鍵字定義類,而類的最基本特性就是它是一個名稱空間,本篇將會學習類的實例化。

文章目錄

  • 1. 類的實例化
    • 1.1__init__函數
    • 1.2 實例化流程
  • 2. 類方法與成員

1. 類的實例化

上篇中新定義的類,不僅可以作為名稱空間使用,實際上還可以像函數那樣調用

In [1]: class Dog:...:     x = 5...:     def fun1(arg1,arg2):...:         print(arg1,arg2)...:...: if __name__ == "__main__":...:     Dog.fun1("brothers", "666")...:
brothers 666In [2]: Dog() #實例化對象
Out[2]: <__main__.Dog at 0x213762e82b0>

以上,調用Dog()的過程,我們稱作類的實例化,了解類的實例化,要先了解類和對象的關系。

簡單而言,類就想是一個“模具”,而”對象”是由模具生產的各個具體的“東西"

比如,汽車廠的生產線上,有車模具,根據車的模具,可以制作出很多具體的車。
以上,模具就是”類”,具體的車,就是依照”類”生成的對象

只不過,以上的Dog類內部沒有任何東西,我們需要結合一個特殊的__int__函數,才能夠使得對象的實例化有意義。

1.1__init__函數

我們進一步豐富Dog類,通過定義’init’方法:

In [3]: class Dog:...:     def __init__(self,arg_name,arg_age):...:         self.name = arg_name...:         self.age = arg_age...:...: if __name__ == "__main__":...:     dog1 = Dog("旺財",5)...:     dog2 = Dog("小強",6)...:In [4]: dog1
Out[4]: <__main__.Dog at 0x21376553670>In [5]: dog2
Out[5]: <__main__.Dog at 0x21376553ee0>In [6]: dog1.name
Out[6]: '旺財'In [7]: dog2.name
Out[7]: '小強'

以上代碼展示了,我們使用Dog類,實例化得到了具體的2個object(“旺財”,“小強”)

1.2 實例化流程

實際上,當我們調用’Dog’時,內部會發生以下幾個事情:

  • python會創造一個空白的“object”
  • python會自動調用’init’方法,并且把以上的空白object,當作第一個參數’self’,傳遞給’init
  • 因為我們的’init’中包含了’self.xx = yy’這類代碼,因此就完成了初始化

2. 類方法與成員

類作為特殊的名稱空間,使得類中定義的函數就變得比較特殊。因此,我們以后將類中定義的函數,稱為方法(method).
之所以特殊對待,是因為類方法的調用過程比較特殊。

class Dog:def __init__(self,arg_name,arg_age):self.name = arg_nameself.age = arg_agedef introduce(self):print("我是",self.name,"年齡",self.age)if __name__ == "__main__":dog1 = Dog("旺財",5)dog2 = Dog("小強",6)dog1.introduce() #等價于dog1.introduce(dog1)dog2.introduce()

可以看出,類的方法調用語法:

實例化對象.<方法名>()

之所以我們沒有顯示傳遞"self"對應的實參,是因為python其實會偷偷將.之前的實例化對象,作為self傳遞。

3. 學習視頻地址:類的實例化、類方法

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35560.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35560.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35560.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二十二、策略模式

目錄 1、項目需求2、傳統方案解決鴨子問題的分析和代碼實現3、傳統方式實現存在的問題分析和解決方案4、策略模式基本介紹5、使用策略模式解決鴨子問題6、策略模式的注意事項和細節7、策略模式的使用場景 以具體項目來演示為什么需要策略模式&#xff0c;策略模式的優點&#x…

貝銳蒲公英:快速搭建連鎖門店監控體系,賦能企業高效管理

隨著國民生活水平的提高和零售場景的變革&#xff0c;消費者對于餐飲類目的消費支出不斷增加&#xff0c;線下社區生鮮商超作為下沉市場最主要的消費場景之一&#xff0c;蘊藏著巨大價值機會。 對于線下連鎖生鮮超市而言&#xff0c;連鎖門店多、員工多&#xff0c;門店管理時會…

ubuntu磁盤管理

show partition information 掛載設備在這 顯示文件系統信息 build file system mkfs -t ext4 /dev/nvme0n1p4命令作用&#xff1a;將/dev/nvme0n1p4 格式化為 ext4 建立交換分區 mkswap -c -v1 /dev/nvme0n1p4 102400-c&#xff1a;check -v1&#xff1a;新版交換分區 -v0&…

安裝PaddleDetection-2.6.0版本-筆記

安裝PaddleDetection-2.6.0版本-筆記 一、第一步先激活環境 conda activate base conda activate base安裝完paddleDetection后要關閉conda激活環境 conda deactivate conda deactivate二、安裝PaddleDetection2.6.0版本 #pip install PaddleDet2.6.0 #切換版本可安裝pip i…

gitblit windows部署

1.官網下載 往死慢&#xff0c;我是從百度找的1.9.1&#xff0c;幾乎就是最新版 http://www.gitblit.com/ 2.解壓 下載下來是一個zip壓縮包&#xff0c;直接解壓即可 3.配置 3.1.配置資源庫路徑 找到data文件下的gitblit.properties文件&#xff0c;用Notepad打開 **注意路…

詳解編譯過程(編譯+鏈接)

翻譯環境&#xff1a; 編譯&#xff08;編譯器&#xff09;&#xff1a; 1.預編譯&#xff08;預處理&#xff09;&#xff1a; 最終生成test.i文件 【命令】&#xff1a;gcc test.c -E -O test.i 【包含過程】&#xff1a; 1.頭文件的包含 2.注釋的刪除 3.#define定義…

小程序具體開發

window 導航欄 屬性名類型默認值作用navigationBarTitleText string字字符串導航欄標題內容navigationBarBackgroundColorHexcolor#000000設置導航欄背景顏色&#xff08;比如熒黃色 #ffa&#xff09;navigationBarTextStylestringwhite設置導航欄標題的顏色&#xff08;僅含有…

通過將信號頻譜與噪聲頻譜進行比較,自動檢測適當的帶通濾波器轉折頻率研究(Matlab代碼實現)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;歡迎來到本博客????&#x1f4a5;&#x1f4a5; &#x1f3c6;博主優勢&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客內容盡量做到思維縝密&#xff0c;邏輯清晰&#xff0c;為了方便讀者。 ??座右銘&a…

【數據結構與算法】十大經典排序算法-堆排序

&#x1f31f;個人博客&#xff1a;www.hellocode.top &#x1f3f0;Java知識導航&#xff1a;Java-Navigate &#x1f525;CSDN&#xff1a;HelloCode. &#x1f31e;知乎&#xff1a;HelloCode &#x1f334;掘金&#xff1a;HelloCode ?如有問題&#xff0c;歡迎指正&#…

用庫造一個list的輪子 【C++】

文章目錄 list的模擬實現默認成員函數構造函數拷貝構造函數賦值運算符重載析構函數 迭代器迭代器為什么要存在&#xff1f;const_iteratorbegin和end inserterasepush_back && pop_backpush_front &&pop_frontswap 完整代碼 list的模擬實現 默認成員函數 構造…

HCIP BGP小綜合

BGP小綜合 AS配置AS1AS2 中的小自治系統64512AS2 中的小自治系統64513AS3 測試 首先該實驗分成三個AS&#xff0c;AS2里面有聯邦&#xff0c;所以配置順序 要先將IBGP通&#xff0c;然后配置AS1,AS3和聯邦 AS配置 AS1 R1 # bgp 1router-id 1.1.1.1peer 12.1.1.2 as-number …

二十二、責任鏈模式

目錄 1、使用demo演示責任鏈模式2、傳統方案解決oa系統審批3、傳統方案解決oa系統審批存在的問題4、職責鏈模式基本介紹5、職責鏈模式原理類圖6、職責鏈模式解決oa系統采購審批7、職責鏈模式的注意事項和細節8、職責鏈模式的實際使用場景舉例 1、使用demo演示責任鏈模式 學校o…

數據庫相關面試題

鞏固基礎&#xff0c;砥礪前行 。 只有不斷重復&#xff0c;才能做到超越自己。 能堅持把簡單的事情做到極致&#xff0c;也是不容易的。 mysql怎么優化 : MySQL的優化可以從以下幾個方面入手&#xff1a; 數據庫設計優化&#xff1a;合理設計表結構&#xff0c;選擇合適的數…

GitHub 如何部署寫好的H5靜態頁面

感謝粉皮zu的私信&#xff0c;又有素材寫筆記了。(●’?’●) 剛好記錄一下我示例代碼的GitHub部署配置&#xff0c;以便于后期追加倉庫。 效果 環境 gitwin 步驟 第一步 新建倉庫 第二步 拉取代碼 將倉庫clone到本地 git clone 地址第三步 部署文件 新建.github\workflo…

vue-pc端elementui-統一修改問題-Dialog 對話框點擊空白關閉問題-element-所有組件層級問題

前言 實際開發我們經常發現dialog彈出框默認點擊遮罩層空白地方就會關閉-有屬性可以關閉 但是經常會圖方便-或者已經寫完了&#xff0c;不想一個個寫&#xff0c;可以在main.js進行統一關閉 當我們在頁面進行復雜設計和層級關閉改變&#xff0c;會發現右上角的退出登錄彈出款…

現代無人機技術

目錄 1.發展 2.應用領域 3.對戰爭的影響 4.給人類帶來的福利 5.給人類帶來的壞處 1.發展 無人機的發展可以分為以下幾個關鍵步驟&#xff1a; 1. 早期試驗和研究&#xff1a;20世紀初&#xff0c;飛行器的概念開始出現&#xff0c;并進行了一些早期的試飛和實驗。這些嘗試包…

LeetCode150道面試經典題-- 有效的字母異位詞(簡單)

1.題目 給定兩個字符串 s 和 t &#xff0c;編寫一個函數來判斷 t 是否是 s 的字母異位詞。 注意&#xff1a;若 s 和 t 中每個字符出現的次數都相同&#xff0c;則稱 s 和 t 互為字母異位詞。 2.示例 s"adasd" t"daads" 返回true s"addad" t &q…

常見設計模式

概念 設計模式是怎么解決問題的一種方案 常見的設計模式 單例模式 概念&#xff1a;保證一個類僅有一個實例&#xff0c;并提供一個訪問它的全局訪問點。 應用&#xff1a;項目封裝個websocket用于大屏&#xff0c;redux&#xff0c;vuex都應用了單例模式的思想&#xff1b…

文獻閱讀:AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators

文獻閱讀&#xff1a;AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators 1. 文章簡介2. 方法介紹3. 實驗考察 1. 實驗結果2. 消解實驗3. Consistency & Stability 4. 結論 & 思考 文獻鏈接&#xff1a;https://arxiv.org/abs/2303.16854 …

Golang設計模式

Golang設計模式 Golang設計模式簡介Golang工廠設計模式Golang單例設計模式Golang抽象工廠設計模式Golang建造者模式 (Builder Pattern)Golang 原型模式(Prototype Pattern)Golang適配器模式Golang 橋接模式&#xff08;Bridge Pattern&#xff09;Golang裝飾器模式(Decorator …