Python的未來 future模組

來源:互聯網
上載者:User

轉載:http://omencathay.itpub.net/post/30163/414347

簡單介紹一下python未來將會支援的一些語言特點 ,雖然Ibm的網站上也有介紹.但是太淩亂了.而且中翻譯過後,代碼的格式想狗屎一樣.

下面簡單介紹一下這些特點

nested_scopes: 改變名空間的搜尋過程generators:使用產生器.能夠產生能儲存目前狀態的函數.division:精確的除法absolute_import:包含絕對路徑.方便includewith_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

def alphabet():
 n=0
 while n<26:
 char=chr(ord('a')+n)
 n+=1
 yield char #在這裡返回,下次調用時從這裡開始

調用方法

gen=alphabet()
for char in gen:
 print char

或者使用gen.next()函數.可以看到,函數內部控制變數n的值被保留下來了

在2.5中generator功能更加豐富,yield可以作為運算式的以部分,使用send方法來改變其的返回時的狀態.

具體http://blog.donews.com/limodou/archive/2006/09/04/1028747.aspx

當遍曆所有變數以後會引發StopIteration異常

division:精確的除法,同義

>>> 22/7
3
>>> from __future__ import division
>>> 22/7
3.1428571428571428

absolute_import:包含絕對路徑.方便include

很多時候當我們要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會自動幫我們做這件事.

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1764543

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.