python 高階教程 使用物件屬性進行排序

2021-09-02 22:13:31 字數 706 閱讀 3272

0.摘要

python中的類通常不支援比較操作,但是我們可以依據類的屬性值進行排序。

本文主要介紹使用operator.attrgetter()方法獲取類的屬性值,從而完成排序。

1.operator.attrgetter()方法

from operator import attrgetter

class user:

def __init__(self, user_id):

self.user_id = user_id

def __repr__(self):

return 'user({})'.format(self.user_id)

# example

users = [user(23), user(3), user(99)]

print(users)

#result:[user(23), user(3), user(99)]

# sort it by user-id

print(sorted(users, key=attrgetter('user_id')))

#result:[user(3), user(23), user(99)]

借助於lambda表示式也可實現同樣的功能,但operator.attrgetter()方法執行效率更高。

python 高階 物件

type name,bases,dict 元類構造物件 isinstance object,classinfo 判斷例項是否屬於類 issubclass class,classinfo 判斷繼承關係 hasattr object,name 判斷例項屬性是否存在 getattr object,name...

python教程閉包 python高階教程之閉包

閉包 1.函式引用 def test1 print in test1 func 呼叫函式 test1 引用函式 ret test1 print id ret print id test1 通過引用呼叫函式 ret 執行結果 in test1 func in test1 func 2.什麼是閉包 定義...

Python高階 物件自省

自省 introspection 在計算機程式設計領域裡,是指在執行時來判斷乙個物件的型別的能力。它是python的強項之一。python中所有一切都是乙個物件,而且我們可以仔細勘察那些物件。python還包含了許多內建函式和模組來幫助我們。dir用於自省的最重要的函式之一。它返回乙個列表,列出了乙...