Python的未來 future模組

2021-04-13 08:04:08 字數 2196 閱讀 1644

簡單介紹一下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:

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會自動幫我們做這件事.

歡迎提出寶貴意見

介紹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...