亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python中的__future__是什么,以及如何/何時使用它以及如何工作

Python中的__future__是什么,以及如何/何時使用它以及如何工作

精慕HU 2019-11-04 14:43:13
包括我在內的人都知道Python __future__中有一個叫做“東西”的東西,它出現在我閱讀的很多模塊中。而且,即使在閱讀Python的__future__文檔之后,像我這樣的乏味的人也不知道為什么會有它,以及如何/何時使用它。因此,有沒有任何示例解釋說明?就基本用法而言,我很快得到了一些答案,這些答案看起來都是正確的。但是,為了進一步了解其__future__工作原理,請執行以下操作:當我試圖理解它時,我剛剛意識到一個使我感到困惑的關鍵事情,即當前的python版本如何包含將在將來的版本中發布的內容?以及如何在當前python版本中成功編譯在未來python版本中使用新功能的程序?所以,現在我想,當前版本已經打包了一些潛在功能,這些功能將包含在將來的版本中-對嗎?但是這些功能僅在之前可用__future__,這是因為它尚未成為標準功能-是嗎?
查看完整描述

3 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

通過__future__包含模塊,您可以逐漸習慣于不兼容的更改或引入新關鍵字的更改。


例如,對于使用上下文管理器,您必須from __future__ import with_statement在2.5中進行操作,因為with關鍵字是new,并且不再用作變量名。為了with在Python 2.5或更早版本中用作Python關鍵字,您將需要使用上面的import。


另一個例子是


from __future__ import division

print 8/7  # prints 1.1428571428571428

print 8//7 # prints 1

沒有這些__future__東西,兩個print語句都將打印出來1。


內部差異在于沒有導入時,/映射到__div__()方法,而使用導入__truediv__()。(無論如何,請//致電__floordiv__()。)


Apropos print:print在3.x中成為函數,失去其特殊屬性作為關鍵字。反之亦然。


>>> print


>>> from __future__ import print_function

>>> print

<built-in function print>

>>>


查看完整回答
反對 回復 2019-11-04
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

當你做


from __future__ import whatever

您實際上不是在使用import語句,而是在將來的語句。您正在閱讀錯誤的文檔,因為您實際上并未在導入該模塊。


以后的語句很特殊-它們更改了Python模塊的解析方式,這就是為什么它們必須位于文件頂部的原因。它們為文件中的單詞或符號賦予了新的(或不同的)含義。從文檔:


將來的語句向編譯器發出指令,指示應使用在將來指定的Python版本中可用的語法或語義來編譯特定模塊。將來的聲明旨在簡化向Python的未來版本的移植,從而對語言進行不兼容的更改。它允許在該功能成為標準版本之前,按模塊使用新功能。


如果您確實要導入__future__模塊,請執行


import __future__

然后照常訪問它。


查看完整回答
反對 回復 2019-11-04
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

__future__ 是一個偽模塊,程序員可以使用它來啟用與當前解釋器不兼容的新語言功能。例如,該表達式11/4當前的計算結果為2。如果執行該模塊的模塊通過執行以下命令啟用了真除法:


from __future__ import division


該表達式的11/4計算結果為2.75。通過導入__future__模塊并評估其變量,您可以看到何時將新功能首次添加到語言中以及何時將其成為默認功能:


  >>> import __future__

  >>> __future__.division

  _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)


查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 805 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號