2014-05-09 11 views
0

`從我讀過的內容來看,python 2允許與不同類型進行比較,但由於某些原因,python 3已經刪除了它。不管這是否是一個好主意,我想比較兩個相同類型或不同的任意值。 我讀過,在Python 2比較不同類型是通過比較類型的名稱,所以我試圖實現這一點。在python中比較不同的類型3.4

def less_than_or_equal(a, b): 
    if type(a) == type(b): 
     return a <= b 
    else: 
     return str(type(a)) <= str(type(b)) 

我這樣做後,我意識到一些類型,通常會得到比較像一個浮點數和一個int將不會比較正確使用此。

我怎麼能做到這一點?

+0

你爲什麼要這麼做? – Apalala

回答

3

你可以try比較,然後退到類型的字符串:

def leq(a,b): 
    try: 
     return a <= b 
    except TypeError: 
     return str(type(a)) <= str(type(b)) 
+2

請注意,'None'總是在Python 2中首先排序,並且數字類型在其他所有內容(無<數字<其他所有內容)之前排序。 –