91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python工廠函數用法實例分析

發布時間:2020-09-05 09:16:17 來源:腳本之家 閱讀:242 作者:grey_csdn 欄目:開發技術

本文實例講述了Python工廠函數用法。分享給大家供大家參考,具體如下:

參考了很多代碼、別人的文章以及書籍,最后自己做了適合自己理解的一種理解總結方式。

很多人說,工廠函數看上去像函數,其實是類。我覺得這種方法有些牽強,雖說在OOP中Python有其自己對類以及對象的定義。在一定程度上這么說是可以的。

我個人的理解,既然叫做工廠函數,那么這一定是一個函數。不過,看了許多例子后發現,其實工廠函數基本上都是帶有返回對象的。而這些返回對象則是通過調用一種或者多種類來創建的對象。

例如,有如下代碼:

#!/usr/bin/python
class Card:
    def __init__(self,rank,suit):
       self.suit = suit
       self.rank = rank
       self.hard,self.soft =self._points()
classNumberCard(Card):
    def _points(self):
       returnint(self.rank),int(self.rank)
classAceCard(Card):
    def _points(self):
       return 1,11
classFaceCard(Card):
    def _points(self):
       return 10,10
class Suit:
    def __init__(self,name,symbol):
       self.name = name
       self.symbol = symbol
defcard(rank,suit):
    if rank == 1:
       return AceCard('A',suit)
    elif 2 <= rank < 11:
       return NumberCard(str(rank),suit)
    elif 11 <= rank < 14:
       name ={11:'J',12:'Q',13:'K'}[rank]
       return FaceCard(name,suit)
    else:
       raise Exception("Rank out ofrange")

上面代碼中的card其實就是通過調用各種類來創建對象,而這個函數就是一個工廠函數。這種函數的設計,通常是為了滿足批量創建大量的對象或實例而創建。比如,創建所有的撲克牌對象可以通過如下代碼:

Club,Diamond,Heart,Spade=Suit('Club','CCC'),Suit('Diamond','DDD'),Suit('Heart','HHH'),Suit('Spade','SSS')
deck =[card(rank,suit)
    for rank in range(1,14)
       for suit in(Club,Diamond,Heart,Spade)]

上面的代碼,首先創建了不同的花色,然后通過復合for語句創建了整套撲克牌。如果簡化一些,自然也可以把花色存儲到一個專門的元組或者列表中增強一下可讀性。

以上是我自己通過不同的資料、文檔、書籍以及代碼示例總結出的Python中工廠函數的理解以及使用方式。應該沒有太大偏差了吧?如果有的話,后續繼續糾正吧,畢竟學習本身應該是一條曲折的路線。

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python函數使用技巧總結》、《Python數據結構與算法教程》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台前县| 永泰县| 桓台县| 泸水县| 西盟| 玛沁县| 卓尼县| 雅安市| 定陶县| 巨鹿县| 五华县| 巩留县| 开平市| 彝良县| 介休市| 宣威市| 温宿县| 涞源县| 林州市| 台湾省| 阿尔山市| 西平县| 齐河县| 上犹县| 武穴市| 雅江县| 石门县| 潢川县| 镶黄旗| 营口市| 凤庆县| 沅陵县| 襄垣县| 哈密市| 衡南县| 星座| 自贡市| 朝阳县| 永川市| 额济纳旗| 格尔木市|