Nasıl yeni bir dil özelliklerini kullanan bir program Python sürümü için kontrol edebilirim?
Eğer en az bir özel gerektiren bir Python betiği varsa düzgün bir şekilde başarısız için doğru yolu nedir Python sürümü Python önceki bir sürümü komut dosyası başlatmak için kullanılır?
Nasıl kontrol bir hata iletisi vermek için yeterince erken alabilirim ve çıkış?
Örneğin, ternery operatörü kullanan bir program (2.5 yeni)"," blok ile (2.6 yeni). Basit bir yorumlayıcı sürüm yazdım senaryoyu ilk şey denetleyicisi rutin o kadar girmiyor arayın. Bunun yerine, script benim rutinleri önce python derleme sırasında başarısız olur hatta denir. Böylece betiğin kullanıcı bazı çok görür karanlık synax hatası tracebacks - oldukça çok gerektirir sadece çalışan bir durum olduğunu anlamak için bir uzman Python sürümü yanlış.
Python sürümünü kontrol etmek için nasıl biliyorum. Bu sorun, bazı sözdizimi Python eski sürümlerinde yasaktır. Bu program göz önünde bulundurun:
import sys
if sys.version_info < (2, 4):
raise "must use python 2.5 or greater"
else:
# syntax error in 2.4, ok in 2.5
x = 1 if True else 2
print x
2.4, altında çalıştırıldığında bu sonuç istiyorum
$ ~/bin/python2.4 tern.py
must use python 2.5 or greater
ve bu sonuç değil:
$ ~/bin/python2.4 tern.py
File "tern.py", line 5
x = 1 if True else 2
^
SyntaxError: invalid syntax
(Bir iş için kanalize.)
CEVAP
eval
kullanarak test edebilirsiniz:
try:
eval("1 if True else 2")
except SyntaxError:
# doesn't have ternary
Ayrıca, with
Python mevcut 2.5, sadece from __future__ import with_statement
ekleyin.
EDİT: kontrol yeterince erken almak için .py
farklı dosya yap split ve uyumluluk onay almadan önce ana dosyası (bir pakette __init__.py
örn:
# __init__.py
# Check compatibility
try:
eval("1 if True else 2")
except SyntaxError:
raise ImportError("requires ternary support")
# import from another module
from impl import *
Nasıl python modülü sürümü kontrol etm...
Nasıl kontrol etmek için Python metin ...
Nasıl kontrol etmek için iOS sürümü?...
Nasıl baskı yeni satır veya boşluk olm...
Nasıl bir değişkeni Python varsa kontr...