簡單介紹一下python未來將會支援的一些語言特點 ,雖然ibm的**上也有介紹.但是太凌亂了.而且中翻譯過後,**的格式想狗屎一樣.
下面簡單介紹一下這些特點
nested_scopes: 改變名空間的搜尋過程
generators:使用生成器.能夠產生能儲存當前狀態的函式.
division:精確的除法
absolute_import:包含絕對路徑.方便include
with_statement:安全的開啟檔案
想使用這寫語言特點, 在檔案開頭加一句
from __future__ import featurename
比如from __future__ import division
就能用了
下面介紹一下他們
nested_scopes: 改變使用lambda時名空間的搜尋過程,按照dive into python中的話說
generators:使用生成器.能夠產生能儲存當前狀態的函式.
注意generator使用yield返回.不是return
下面的generator每次呼叫都會返回字母表中下乙個字母,從a開始,到z結束.
from
__future__
import
generators
defalphabet():
n=0while
n<26:
char
=chr(ord('a
')+n)
n+=1
yield
char
#在這裡返回,下次呼叫時從這裡開始
呼叫方法
gen=alphabet()
forchar
ingen:
char
或者使用gen.next()函式.可以看到,函式內部控制變數n的值被保留下來了
在2.5中generator功能更加豐富,yield可以作為表示式的以部分,使用send方法來改變其的返回時的狀態.
具體http://blog.donews.com/limodou/archive/2006/09/04/1028747.aspx
當遍歷所有變數以後會引發stopiteration異常
division:精確的除法,同義
>>> 22/7absolute_import:包含絕對路徑.方便include3>>> from __future__ import division
>>> 22/7
3.1428571428571428
很多時候當我們要include上一層目錄的檔案時,不得不手動使用os來把上層目錄加入搜尋path.否則include就會找不到檔案.使用了這個特性後.絕對路徑自動加入了.可以使用絕對路徑來
下面是從一封郵件裡面摘錄的
>>work
>>|
>>|- foo.py # print "foo not in bar"
>>|
>>`- bar
>>|
>>|- __init__.py
>>|
>>|- foo.py # print "foo in bar"
>>|
>>|- absolute.py # from __futer__ import absolute_import
>>| # import foo
>>|
>>`- relative.py # import foo
>>
>>
>>* where "work" is in the path.
>>
>>
>>(1)
>>
>>c:/work>python -c "import bar.absolute"
>>foo not in bar
>>
>>c:/work>python -c "import bar.relative"
>>foo in bar
>>
>>
with_statement:安全的開啟檔案
使用with open("file name ") as xx開啟檔案.這樣不用close檔案了.python會自動幫我們做這件事.
歡迎提出寶貴意見
介紹Python中的 future
這篇文章主要介紹了介紹python中的 future 模組,future 模組使得在python2.x的版本下能夠相容更多的python3.x的特性,需要的朋友可以參考下 python的每個新版本都會增加一些新的功能,或者對原來的功能作一些改動。有些改動是不相容舊版本的,也就是在當前版本執行正常的 ...
關於python 中的 future
python的每個新版本都會增加一些新的功能,或者對原來的功能作一些改動。有些改動是不相容舊版本的,也就是在當前版本執行正常的 到下乙個版本執行就可能不正常了。具體說來就是,某個版本 現了某個新的功能特性,而且這個特性和當前版本中使用的不相容,也就是它在該版本中不是語言標準,那麼我如果想要使用的話就...
介紹Python中的 future
python的每個新版本都會增加一些新的功能,或者對原來的功能作一些改動。有些改動是不相容舊版本的,也就是在當前版本執行正常的 到下乙個版本執行就可能不正常了。從python 2.7到python 3.x就有不相容的一些改動,比如2.x裡的字串用 表示str,unicode字串用u 表示unicod...