欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的with...as用法介紹

 更新時(shí)間:2015年05月28日 17:41:02   投稿:junjie  
這篇文章主要介紹了Python中的with...as用法介紹,本文直接給出用法實(shí)例,需要的朋友可以參考下

這個(gè)語法是用來代替?zhèn)鹘y(tǒng)的try...finally語法的。

復(fù)制代碼 代碼如下:

with EXPRESSION [ as VARIABLE] WITH-BLOCK

基本思想是with所求值的對(duì)象必須有一個(gè)__enter__()方法,一個(gè)__exit__()方法。

緊跟with后面的語句被求值后,返回對(duì)象的__enter__()方法被調(diào)用,這個(gè)方法的返回值將被賦值給as后面的變量。當(dāng)with后面的代碼塊全部被執(zhí)行完之后,將調(diào)用前面返回對(duì)象的__exit__()方法。

復(fù)制代碼 代碼如下:

file = open("/tmp/foo.txt")
try:
    data = file.read()
finally:
    file.close()

使用with...as...的方式替換,修改后的代碼是:
復(fù)制代碼 代碼如下:

with open("/tmp/foo.txt") as file:
    data = file.read()
#!/usr/bin/env python
# with_example01.py
 
 
class Sample:
    def __enter__(self):
        print "In __enter__()"
        return "Foo"
 
    def __exit__(self, type, value, trace):
        print "In __exit__()"
 
 
def get_sample():
    return Sample()
 
 
with get_sample() as sample:
    print "sample:", sample

執(zhí)行結(jié)果為
復(fù)制代碼 代碼如下:

In __enter__()
sample: Foo
In __exit__()

1. __enter__()方法被執(zhí)行
2. __enter__()方法返回的值 - 這個(gè)例子中是"Foo",賦值給變量'sample'
3. 執(zhí)行代碼塊,打印變量"sample"的值為 "Foo"
4. __exit__()方法被調(diào)用with真正強(qiáng)大之處是它可以處理異常。可能你已經(jīng)注意到Sample類的__exit__方法有三個(gè)參數(shù)- val, type 和 trace。這些參數(shù)在異常處理中相當(dāng)有用。我們來改一下代碼,看看具體如何工作的。

相關(guān)文章

  • python實(shí)現(xiàn)雙人版坦克大戰(zhàn)游戲

    python實(shí)現(xiàn)雙人版坦克大戰(zhàn)游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)雙人版坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Django+Vue實(shí)現(xiàn)文件上傳下載的項(xiàng)目實(shí)踐

    Django+Vue實(shí)現(xiàn)文件上傳下載的項(xiàng)目實(shí)踐

    本文主要介紹了Django+Vue實(shí)現(xiàn)文件上傳下載的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 一篇文章徹底搞懂Python類屬性和方法的調(diào)用

    一篇文章徹底搞懂Python類屬性和方法的調(diào)用

    對(duì)python?調(diào)用類屬性的方法詳解測試時(shí)候類的調(diào)用是經(jīng)常會(huì)用到的,下面這篇文章主要給大家介紹了關(guān)于Python類屬性和方法的調(diào)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • python基于win32api實(shí)現(xiàn)鍵盤輸入

    python基于win32api實(shí)現(xiàn)鍵盤輸入

    這篇文章主要介紹了python基于win32api實(shí)現(xiàn)鍵盤輸入,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python 自動(dòng)識(shí)別并連接串口的實(shí)現(xiàn)

    python 自動(dòng)識(shí)別并連接串口的實(shí)現(xiàn)

    這篇文章主要介紹了python 自動(dòng)識(shí)別并連接串口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python subprocess模塊功能與常見用法實(shí)例詳解

    Python subprocess模塊功能與常見用法實(shí)例詳解

    這篇文章主要介紹了Python subprocess模塊功能與常見用法,結(jié)合實(shí)例形式詳細(xì)分析了subprocess模塊功能、常用函數(shù)相關(guān)使用技巧,需要的朋友可以參考下
    2018-06-06
  • Python編寫電話薄實(shí)現(xiàn)增刪改查功能

    Python編寫電話薄實(shí)現(xiàn)增刪改查功能

    這篇文章主要為大家詳細(xì)介紹了Python編寫電話薄實(shí)現(xiàn)增刪改查功能的相關(guān)資料,感興趣的朋友可以參考一下
    2016-05-05
  • 使用OpenCV對(duì)運(yùn)動(dòng)員的姿勢(shì)進(jìn)行檢測功能實(shí)現(xiàn)

    使用OpenCV對(duì)運(yùn)動(dòng)員的姿勢(shì)進(jìn)行檢測功能實(shí)現(xiàn)

    2022年奧林匹克運(yùn)動(dòng)會(huì)如期舉行,以不正確的方式進(jìn)行運(yùn)動(dòng)風(fēng)險(xiǎn)在增加,人體姿勢(shì)估計(jì)是計(jì)算機(jī)視覺領(lǐng)域的重要問題,接下來通過本文給大家介紹下使用OpenCV對(duì)運(yùn)動(dòng)員的姿勢(shì)進(jìn)行檢測功能,感興趣的朋友一起看看吧
    2022-02-02
  • python 如何在list中找Topk的數(shù)值和索引

    python 如何在list中找Topk的數(shù)值和索引

    這篇文章主要介紹了python 如何在list中找Topk的數(shù)值和索引的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 舉例詳解Python中的split()函數(shù)的使用方法

    舉例詳解Python中的split()函數(shù)的使用方法

    這篇文章主要介紹了舉例詳解Python中的split()函數(shù)的使用方法,split()函數(shù)的使用是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),通常用于將字符串切片并轉(zhuǎn)換為列表,需要的朋友可以參考下
    2015-04-04

最新評(píng)論