1.__str__()要把乙個類的例項變成 str,就需要實現特殊方法__str__(),因為 python 定義了__str__()和__repr__()兩種方法,__str__()用於顯示給使用者,而__repr__()用於顯示給開發人員。
classperson(object):
def__init__
(self, name, gender):
self.name =name
self.gender =gender
def__str__
(self):
return
'(person: %s, %s)
' % (self.name, self.gender)
2.__cmp__()對 int、str 等內建資料型別排序時,python的 sorted() 按照預設的比較函式 cmp 排序,但是,如果對一組 student 類的例項排序時,就必須提供我們自己的特殊方法 __cmp__():
classstudent(object):
def__init__
(self, name, score):
self.name =name
self.score =score
def__str__
(self):
return
'(%s: %s)
' %(self.name, self.score)
__repr__ = __str__
def__cmp__
(self, s):
if self.name return -1
elif self.name >s.name:
return 1
else
:
return 0
上述 student 類實現了__cmp__()方法,__cmp__用例項自身self和傳入的例項 s 進行比較,如果 self 應該排在前面,就返回 -1,如果 s 應該排在前面,就返回1,如果兩者相當,返回 0。
3.len()
如果乙個類表現得像乙個list,要獲取有多少個元素,就得用 len() 函式。
要讓 len() 函式工作正常,類必須提供乙個特殊方法__len__(),它返回元素的個數。
classstudents(object):
def__init__(self, *args):
self.names =args
def__len__
(self):
return len(self.names)
只要正確實現了__len__()方法,就可以用len()函式返回students例項的「長度」:
>>> ss = students('bob', '
alice
', '
tim'
len(ss)
3
Python世界裡的魔術方法 二
檔案的io操作可以對檔案物件使用上下文管理,使用with as語法。with open test as f pass如果希望類也支援上下文管理,則需要定義兩個函式。classa def init self print init def enter self print enter def exit ...
python裡 怎麼打 python裡的 怎麼輸入
python去重函式是什麼 用python寫溫度轉換 python中的 就是math.pi變數 它被包含在標準庫中,在你試圖自己計算它之前,應該先去匯入math庫,才能呼叫math.pi方法 import sys import math defmain ar if len ar 1 sys.exit...
Collection裡的方法
test public void testcollextion1 test public void testcollection2 test public void testcollection3 返回乙個iterator介面實現類的物件,進而實現集合的遍歷 iterator iterator co...