2012-10-01 7 views
11

Python 2.4'ten python 3'e uyumlu bir özel yakalama kodu yazmak için var mı? Bu kodun gibiBir özel durum nasıl yazılır Bir kod yakalama kodu Python2.4 ile Python3'te çalışır

:

# only works in python 2.4 to 2.7 
try: 
    pass 
except Exception,e: 
    print(e) 

# only works in python 2.6 to 3.3 
try: 
    pass 
except Exception as e: 
    print(e) 
+1

projelerin bir sürü piton 2 için kodlarını korumak ve kullanmak [2to3] (http : //docs.python.org/library/2to3.html) gerekli olduğunda otomatik olarak python 3'e dönüştürmek için. Bu genellikle her ikisiyle de uyumlu olan kod yazmaya çalışmaktan daha kolaydır (muhtemelen karşılaştığınız en zor sorun bu olmayacaktır). – James

cevap

15

hem Python 2'de çalışmaktadır ve Python 3 çünkü aralarındaki farklar sayısının çokluğu, nihai olarak nafile kod yazmak çalışıyorum. Aslında, şimdi bir çok proje ayrı Python 2 ve Python 3 sürümlerinde devam ediyor. Eğer cehennem bükük bir süper-taşınabilir şekilde bunu iseniz, söz konusu

...

import sys 
try: 
    ... 
except Exception: 
    t, e = sys.exc_info()[:2] 
    print(e) 
+2

Her ne kadar bu konu güvenli değil –

+0

Cevabınız için teşekkür ederiz nneonneo ve bahşiş için @gnibbler teşekkür ederim :-) – yegle

+4

@gnibbler: İnanıyorum ki ... "Geri dönen bilgiler hem geçerli dizgeye özgüdür ve geçerli yığın çerçevesine. " – nneonneo

İlgili konular