第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在函數中鍵入提示文件名?

如何在函數中鍵入提示文件名?

慕運維8079593 2021-08-24 17:27:13
Python 中提示文件名的最佳方法是什么,以便將任何內容傳遞給您可以作為文件打開的函數?尤其是通過 Pathlib 找到的字符串和文件。def myfunc(filename: str) -> None:    with open(filename) as f1:        # do something here
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

我認為您正在尋找的是結構類型,目前尚不支持。它在PEP 544 中提出。

同時,您可以通過使用Union[str, bytes, os.PathLike].


查看完整回答
反對 回復 2021-08-24
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

PEP 519建議使用typing.Union[str, bytes, os.PathLike]


查看完整回答
反對 回復 2021-08-24
?
斯蒂芬大帝

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

正如埃里克所說,


PEP 519建議使用typing.Union[str, bytes, os.PathLike].


這是最簡單的選擇。


但是你也應該考慮_typeshed.AnyPath:它支持根據不同版本的各種路徑,并且它是內置文件名庫中的默認鍵入提示,例如在函數open()本身中。導入它會導致您的類型助手識別輸入應該是文件名,并且可能有助于輸入提示路徑。它還具有_typeshed.StrPath僅_typeshed.BytesPath適用于字符串和僅適用于字節(jié)串的變體。這里為他們的定義。


但是,您不能只導入typeshed模塊,因為它在運行時不存在。最簡單的解決方案是僅在類型檢查期間導入它(因為這是您唯一需要它的時候):


from typing import TYPE_CHECKING

AnyPath = None

if TYPE_CHECKING:

    from _typeshed import AnyPath

最后,在當前的 3.10 beta 版本中,AnyPath 已重命名為 StrOrBytesPath,以便將字符串和字節(jié)串與 Path 模塊的路徑分開,并且不會很快看到另一個 AnyPath。因此,如果您打算僅輸入 str 文件名,則可以使用_typeshed.StrPath,或者只是放棄并使用typing.Union[str, bytes, os.PathLike].


查看完整回答
反對 回復 2021-08-24
  • 3 回答
  • 0 關注
  • 241 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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