Импортирование нововведений из модуля будущего __future__ — интересная
особенность языка Python. Языковые нововведения, которые появятся только в будущих
версиях, уже можно импортировать и использовать. Какие нововведения вы можете
использовать в вашей версии интерпретатора?
# -*- coding: utf-8 -*-
from __future__ import print_function, unicode_literals
import sys
def future_features():
import __future__
return dict((x, getattr(__future__, x))
for x in __future__.all_feature_names)
def version_str(v):
return '{0}.{1}.{2} {3} {4}'.format(*v)
print('running {0}\n'.format(version_str(sys.version_info)))
msg = '{0} {1}\t... {2}'
print('\n'.join(msg.format(k.ljust(20),
version_str(v.optional),
version_str(v.mandatory))
for k, v in future_features().items()))
Нововведения будущего в моём интерпретаторе:
running 2.6.5 final 0
division 2.2.0 alpha 2 ... 3.0.0 alpha 0
nested_scopes 2.1.0 beta 1 ... 2.2.0 alpha 0
unicode_literals 2.6.0 alpha 2 ... 3.0.0 alpha 0
with_statement 2.5.0 alpha 1 ... 2.6.0 alpha 0
absolute_import 2.5.0 alpha 1 ... 2.7.0 alpha 0
generators 2.2.0 alpha 1 ... 2.3.0 final 0
print_function 2.6.0 alpha 2 ... 3.0.0 alpha 0
Программа выше специально была написана совместимой с Python 3. Вот результаты на новом интерпретаторе:
running 3.1.2 final 0
division 2.2.0 alpha 2 ... 3.0.0 alpha 0
nested_scopes 2.1.0 beta 1 ... 2.2.0 alpha 0
unicode_literals 2.6.0 alpha 2 ... 3.0.0 alpha 0
barry_as_FLUFL 3.1.0 alpha 2 ... 3.9.0 alpha 0
with_statement 2.5.0 alpha 1 ... 2.6.0 alpha 0
absolute_import 2.5.0 alpha 1 ... 2.7.0 alpha 0
generators 2.2.0 alpha 1 ... 2.3.0 final 0
print_function 2.6.0 alpha 2 ... 3.0.0 alpha 0
Тем, кому интересно, советую попробовать импортировать из будущего
символы braces и barry_as_FLUFL. Подробнее см. Google :)
Here you can find markdown vim syntax file made by Ben Williams. Put it to the ~/vim/syntax/ folder.
To add syntax...
“This image was taken on September 15, 2006 and received on Earth September 20, 2006. The camera was pointing toward Saturn at approximately 2M...
Well, it looks like GCC 4.3.2 does not comply to C99 specification. It clearly states that:
6.8.6.4.1 ... A...