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

溫馨提示×

溫馨提示×

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

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

Python 中怎么自定義基本類型

發布時間:2021-07-23 16:51:51 來源:億速云 閱讀:307 作者:Leah 欄目:編程語言

本篇文章為大家展示了Python 中怎么自定義基本類型,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

我們也知道,在 Python 里面,一切都是對象,而對象一般有方法。所以,大家會看到下面這種寫法:

a = 'abcde' b = a.upper() print(b)

其中的.upper()就是把字母轉成大寫的方法。

我們在寫自己的類時,常常會定義很多的方法。那么,當字符串自帶的方法不夠時,我們是否有辦法自定義一些方法呢?

比如說,我想要一個方法叫做.are_you_short(),如果字符串的長度小于5,返回 True,字符串的長度大于等于5,返回 False。

我雖然可以單獨定義一個類來做這件事情:

class MyStr:     def __init__(self, value):         self.value = value      def are_you_short(self):         return len(self.value) < 5

運行效果如下圖所示:

Python 中怎么自定義基本類型

但問題是,現在根據MyStr類初始化的對象,它看起來完全不像一個字符串。它只是一個普通的對象了。大家對比一下普通字符串的行為和這個MyStr對象的行為:

Python 中怎么自定義基本類型

MyStr對象,不僅打印不出內容,而且還不能通過加號進行拼接。

看到這里,可能有同學會認為我要講魔術方法了。例如給MyStr實現.__str__()方法,就能打印出內容;實現.__add__()方法,就可以實現用加號拼接。

但等等,哪里需要這么麻煩?一般有這種想法的同學,是剛剛學完 Python 的魔術方法,覺得什么事情都可以用魔術方法來解決。

但實際上,要實現字符串的所有方法非常簡單!

東西學得越多,就越容易把最簡單的知識給忘記了。想想是不是還有一個東西叫做繼承?

我們修改一下MyStr的定義:

class MyStr(str):     def are_you_short(self):         return len(self) < 5

運行效果如下圖所示:

Python 中怎么自定義基本類型

不需要手動實現任何的魔術方法,直接就能擁有字符串的全部能力。

大家也可以對 int、float甚至是列表、字典試一試,來實現自己的數據類型。

需要注意的是,在繼承 Python 的數據類型時不要手動寫出__init__()方法,除非你知道你在干什么。

上述內容就是Python 中怎么自定義基本類型,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

黎川县| 阜城县| 西宁市| 肥西县| 荥阳市| 汉川市| 日照市| 东辽县| 垣曲县| 元谋县| 淳安县| 伊宁县| 托克托县| 南雄市| 海南省| 田林县| 万山特区| 汪清县| 溧水县| 故城县| 兴仁县| 苍梧县| 临安市| 伊春市| 新竹县| 平安县| 兰考县| 益阳市| 江陵县| 阜宁县| 贺州市| 鄂托克旗| 株洲市| 曲阜市| 永和县| 大庆市| 临海市| 平凉市| 阳西县| 南昌县| 东丰县|