Python3中sort()函數排序的實現(sort實現了,比較大小你也就懂了)(測試版本Python3.6,測試環境Anaconda)

本文介绍了在Python3中由于`__cmp__`方法的移除,如何通过实现`__lt__`、`__gt__`等方法来自定义类的比较大小。文中提供两种方法,一种是通过转换函数,另一种是直接在类外部定义相关方法。这对于进行排序或比较操作至关重要。
摘要由CSDN通过智能技术生成

今天自學到類這一章節,書上讓練習自己實現類比較大小,例子是Python2版本的代碼,本人之前也沒用過Python,當初裝了python3版本,所以在實現的時候按照以前的方法一直遇到無法比較兩個類的問題,在網上也沒有找到具體説明的例子,都是零散知識點,於是去翻官網,發現一些方法,分享給像我這樣的自學者,希望能有所幫助,至於根據簡單的能想到多深就看個人了,畢竟一生二,二生三,三生萬物,如有錯誤也請前輩幫忙指正,轉載也請注明出處,謝謝:)


沒法按照Python2實現的根本原因:

python3類中找不到__cmp__()了!(dir(object)可以檢查類中屬性,你可以在交互模式下去試驗下)

1. 首先看到這你要知道的一點是(別杠哦):

在比較大小或者排序,或者求最大最小等等啥的時候系統根據什麽來判斷誰大誰小,就是默默調用了這個。

2. 好,順著問題想,那這個沒了怎麽辦,查文檔發現用這些東西替代了,不用嫌多,每個意思都很簡單(可以根據英文記哦)

__lt__ (): 小於  __gt__ :() 大於 __eq__ :() 等於  __le__ :() 小於等於 __ge__ :() 大於等於 __ne__ :() 不等於

3. 當時想的是那我要做的不就是轉變成怎麽實現這些不就能比較了嗎,然後默默找到了兩種簡單的方法,分享給大家

1)第一種方法(我覺的代碼裏面已經寫的很詳細了)

第一種方法的核心是將自己寫的函數通過轉換轉換成一開頭提到的那些__lt__那些函數

#定義一個學生類(只用於比較大小,所以能簡潔就簡潔)
class Student(object):
    #如下兩個列表中的内容用來到時候生成各種各樣的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值