最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?類方法和靜態(tài)方法之間的區(qū)別

 更新時間:2022年07月08日 14:20:52   作者:小公雞卡哇伊呀~  
這篇文章主要介紹了Python?類方法和靜態(tài)方法之間的區(qū)別,靜態(tài)方法并不是真正意義上的類方法,它只是一個被放到類里的函數(shù)而已,更多內容需要的朋友可以參考一下

前言

類中不僅可以有 methods,還可以有變量,這些變量稱為類屬性,例如如下代碼中 Book 類的 TYPES 即為類屬性。

類中的方法分為3類:

1. 實例方法 instance method

不使用裝飾器
類中的所有方法,如果第一個參數(shù)是 self,就是 instance method, self 是創(chuàng)建的類實例,實例方法與實例即對象相關。
(self 可以改成別的名稱,但使用 self 是convention,self 是類實例, ),

2. 類方法 class method

使用 @classmethod 裝飾
類方法的第一個參數(shù)總是 cls。如果方法需要類的信息,用 @classmethod 對其進行裝飾, 類方法經(jīng)常被用作 factory,例如如下代碼中的 hardcover 和 paperback 兩個 class method 方法就是可用于創(chuàng)建對象的 factory。
(cls 可以改成別的名稱,但使用 cls 是convention)

3. 靜態(tài)方法 static method

使用 @staticmethod 裝飾

靜態(tài)方法并不是真正意義上的類方法,它只是一個被放到類里的函數(shù)而已。
盡管如此,仍然稱之為方法,但它沒有關于 class 或 object 的任何信息,所以它實際上是一個獨立的函數(shù),只是被放到了類里,靜態(tài)方法既沒有 self 也沒有 cls 參數(shù) 。(靜態(tài)方法可以訪問類屬性,例如 Book.TYPES)

靜態(tài)方法通常用于組織代碼,例如如果認為將某個函數(shù)放到某個類里,整體代碼會因此更符合邏輯,于是可以將這個函數(shù)變成該類的靜態(tài)方法。所以如果需要在類里放一個函數(shù)進去,此函數(shù)不會用到任何關于類或實例的信息,那么就可以用 @staticmethod 對其進行裝飾。

三種方法中,實例方法和類方法用得最多,靜態(tài)方法不常用。

class Book:
? ? TYPES = ("hardcover", "paperback") ?# 精裝,平裝
? ? def __init__(self, name, book_type, weight):
? ? ? ? self.name = name
? ? ? ? self.book_type = book_type
? ? ? ? self.weight = weight
? ? def __repr__(self):
? ? ? ? return f"<Book {self.name}, {self.book_type}, weighing {self.weight}g>"
? ? def instance_method(self):
? ? ? ? print(f"Called instance method of {self}")
? ? @classmethod
? ? def class_method(cls):
? ? ? ? print(f"called class method of {cls}")
? ? @classmethod
? ? def hardcover(cls, name, paper_weight): ?# cls 名稱任意,使用 cls 是 convention
? ? ?? ?# 下一行的cls,改成 Book,代碼也能跑,但應該寫成 cls, 以避免在 inheritance 可能會遇到的問題
? ? ? ? return cls(name, cls.TYPES[0], paper_weight + 100) ?#?
? ? @classmethod
? ? def paperback(cls, name, paper_weight):
? ? ?? ?# 下一行的cls,改成 Book,代碼也能跑,但應該寫成 cls, 以避免在 inheritance 可能會遇到的問題
? ? ? ? return cls(name, cls.TYPES[1], paper_weight)
? ? @staticmethod
? ? def static_method():
? ? ? ? print("Called static method")
book = Book("Dive into Python", Book.TYPES[1], 800)
# Called instance method of <Book Dive into Python, paperback, weighing 800g>
book.instance_method() ?
# 下一行代碼和上一行完全等價
# Called instance method of <Book Dive into Python, paperback, weighing 800g>
Book.instance_method(book)?
# called class method of <class '__main__.Book'>
Book.class_method()
# Called static method
Book.static_method()
h_book = Book.hardcover("Harry Potter", 1500)
light = Book.paperback("Python 101", 600)
# <Book Harry Potter, hardcover, weighing 1600g>
print(h_book)
# <Book Python 101, paperback, weighing 600g>
print(light)

到此這篇關于Python 類方法和靜態(tài)方法之間的區(qū)別的文章就介紹到這了,更多相關Python類方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python模塊搜索概念介紹及模塊安裝方法介紹

    Python模塊搜索概念介紹及模塊安裝方法介紹

    這篇文章主要介紹了Python模塊搜索概念介紹及模塊安裝方法介紹,本文詳細講解了import模塊的運作原理,搜索路徑的過程以及模塊安裝的多種方法,需要的朋友可以參考下
    2015-06-06
  • 使用Flask開發(fā)RESTful?API的方法實現(xiàn)

    使用Flask開發(fā)RESTful?API的方法實現(xiàn)

    RESTful?API是一種基于REST架構風格設計的Web服務接口,本文主要介紹了使用Flask開發(fā)RESTful?API的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Python實現(xiàn)冒泡,插入,選擇排序簡單實例

    Python實現(xiàn)冒泡,插入,選擇排序簡單實例

    這篇文章主要介紹了Python實現(xiàn)冒泡,插入,選擇排序簡單實例,很適合Python初學者學習參考之用,需要的朋友可以參考下
    2014-08-08
  • pyftplib中文亂碼問題解決方案

    pyftplib中文亂碼問題解決方案

    這篇文章主要介紹了pyftplib中文亂碼問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Python+Pygame實現(xiàn)趣味足球游戲

    Python+Pygame實現(xiàn)趣味足球游戲

    這篇文章主要為大家分享了一個基于Python和Pygame實現(xiàn)的一個趣味足球游戲,文中的示例代碼講解詳細,對我們學習Python有一定幫助,需要的可以參考一下
    2022-05-05
  • python3 如何解壓縮.gz文件

    python3 如何解壓縮.gz文件

    這篇文章主要介紹了python3 如何解壓縮.gz文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Python檢查 云備份進程是否正常運行代碼實例

    Python檢查 云備份進程是否正常運行代碼實例

    這篇文章主要介紹了Python檢查 云備份進程是否正常運行代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 對python:循環(huán)定義多個變量的實例詳解

    對python:循環(huán)定義多個變量的實例詳解

    今天小編就為大家分享一篇對python:循環(huán)定義多個變量的實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python 利用 PIL 將數(shù)組值轉成圖片的實現(xiàn)

    python 利用 PIL 將數(shù)組值轉成圖片的實現(xiàn)

    這篇文章主要介紹了python 利用 PIL 將數(shù)組值轉成圖片的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Python安裝官方whl包和tar.gz包的方法(推薦)

    Python安裝官方whl包和tar.gz包的方法(推薦)

    下面小編就為大家?guī)硪黄狿ython安裝官方whl包和tar.gz包的方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論

文昌市| 长汀县| 兰溪市| 喜德县| 交城县| 梅河口市| 南漳县| 浦东新区| 辉南县| 阿坝县| 宝应县| 临沂市| 屏南县| 西青区| 武胜县| 娄烦县| 陕西省| 辽源市| 海晏县| 新邵县| 金乡县| 怀集县| 那曲县| 淳化县| 恭城| 东乡县| 武夷山市| 孝昌县| 肇庆市| 广州市| 江山市| 南皮县| 阳城县| 金塔县| 黄大仙区| 龙江县| 博爱县| 江油市| 宝鸡市| 衡南县| 根河市|