【Python基礎】with語句
上下文管理器
只有理解了上下文管理器,才能更好理解with
的工作原理。
上下文管理協議,這個協議主要包含兩個方法:
__enter__()
__exit__()
協議一般是管定標準的,具體執行要落實到物件,而支援上下文管理協議的物件必須要實現上面的兩個方法。
上下文管理器
實現了上面提到的__enter__()
和__exit__()
方法的支援上下文管理的物件。
通常使用with
語句來呼叫上下文管理器。
執行時上下文
由上下文管理器建立。__enter__()
進入執行時上下文,__exit__()
退出執行時上下文。
上下文表達式
跟在
with
後面的表示式,這個表示式要反悔一個上下文管理器物件。
語句體
with
語句包裹起來的程式碼塊。執行語句體前呼叫上下文管理器的__enter__()
方法,執行完畢後,呼叫`exit()方法。
以檔案開啟關閉作為例子:
with open('test.csv') as f:
for line in f:
print(line)
在with
語句結束後,都可以關閉檔案控制代碼。
END.
相關推薦
【Python基礎】with語句
上下文管理器 只有理解了上下文管理器,才能更好理解with的工作原理。 上下文管理協議,這個協議主要包含兩個方法: __enter__() __exit__() 協議一般是管定標準的,具體執行要落實到物件,而支援上下文管理協議的物件必須要實現上面的兩個
【Python基礎】--豐富的else語句/簡潔的with語句/字典dict{}/集合set{}
豐富的else語句 要麼怎樣,要麼不怎樣(if) 幹完了能怎樣,幹不完就別想怎樣(for、while迴圈) def showMaxFactor(num): count = num // 2
【python基礎】--列表相關基礎知識
PE 刪除 結果 使用 查找 方法 從大到小 類型 pen 1.定義列表 a=[‘xiaoyi‘,‘xiaoer‘,‘xiaosan‘,‘xiaosi‘,‘xiaowu‘,‘xiaoliu‘,‘xaioqi‘,‘xiaoba‘,‘xiaojiu‘]索引(下標)都是從0開始
【Python基礎】流程控制-break及continue使用及while..else的使用
break continue while..else ‘‘‘ break 用於結束一個完整的循環,跳出循環體執行循環後面的語句 continue 用於跳出本次循環,但繼續下一個循環 ‘‘‘ ‘‘‘ continue的用法 打印1-10的數字,3除外 ‘‘‘ # count
【Python基礎】流程控制-while循環
while#while循環 ‘‘‘ while 條件判斷: 滿足條件執行的代碼 ... 條件判斷的根本是True和False的判斷 True才會執行 False不會執行 通過一下方法來打印條件是True或者False a = 10 b = 20 pr
【Python基礎】格式化打印
格式化打印‘‘‘ 1、能夠很規範的打印出想要的內容 2、雙引號內沒有辦法放變量 ‘‘‘ ## 格式化輸入 # %s 輸入任意扥內容都不會報錯因為全部當做str來處理 # %d 只能輸入數字 #案例一 name = input("Name: ") age = input("Age: ") hos
【Python基礎】流程控制-if..else
if..else‘‘‘ 基本的使用 if 條件: 滿足條件執行的代碼 else: 不滿足條件執行的代碼 ‘‘‘ # age = input("Please input Age: ") # age = int(age) # ‘‘‘ # 從input得出的結果默認是str,str格式不能被<
【Python基礎】字符編碼ASCII-GBK-Unicode-UTF-8之間的關系
精準 應該 寫入 歷程 UC tran 執行 文件 總結 字符編碼 由於計算機只識別0和1,為了使計算機能夠支持文字和字母等符號,方便實用操作計算機 於是字符編碼應運而生,旨在解決符號和人類語言與計算機0和1建立起一種對應關系 據說不理解字符編碼可能是程序員一輩子的遺憾,拿
【python基礎】集合類型
linux code 課程 xxd hone 插入元素 close 1.3 格式 集合類型: 作用: --> 關系運算(交集,並集,差集) --> 去重(有局限性) 定義方法:set() linuxers = {1,1.1,‘a‘,(1,2
【python基礎】列表類型
比較排序 .so 必須 判斷 添加 比較 出現的次數 eve count 適合存儲同一屬性的值,比如五年級(3)班所有同學比如張三的愛好:唱歌,跳舞,跑步等特點:可變類型,可重復,有序,存多個值定義方式: class_list = [‘egon‘,‘alex‘] #等於cl
【python基礎】用字典做一個小型的查詢數據庫
import oot 字符 odin 參數錯誤 err 輸出 put 異常 例子來源於《python基礎教程》第三版,57p 該例子主要是使用字典的方式,實現一個小型的數據庫,通過查詢字典的鍵值來獲取用戶的信息。 本人修改了部分代碼。 #!/usr/bin/python3
【python基礎】sort函式
1. 基本用法 1)僅對於list型別的資料 a.sort() 按升序 a.sort(reverse = True) 按降序 2)對於所有可排序型別的資料 sorted(a, reverse = True) 2. 自定義排序函式 a = ((1,2), (3,1), (2
【python基礎】常用的內建函式 python基礎之內建函式
python基礎之內建函式 參考: http://www.runoob.com/python/python-built-in-functions.html -zip() zip函式接受任意多個(包括0個和1個)序列作為引數,返回一個tuple列表 例項1: x = [1,
【Python基礎】下載python第三方庫檔案.wheel安裝python第三方庫
python常見第三方庫在Windows安裝報錯解決方案 最近在Windows下開發,發現很多第三方庫在Windows上的相容性都不是很好,通過谷哥度娘後,發現一個非官方的臨時解決方案, 先貼上地址:Unofficial Windows Binaries for Python Extension Pack
【Python基礎】下載python第三方庫文件.wheel安裝python第三方庫
ria aio 解決方案 pyc rac bug center char sap python常見第三方庫在Windows安裝報錯解決方案 最近在Windows下開發,發現很多第三方庫在Windows上的兼容性都不是很好,通過谷哥度娘後,發現一個非官方的臨時解決方案, 先貼
【python基礎】保護物件的屬性
如果有一個物件,當需要對其進行修改屬性時,有2種方法 物件名.屬性名 = 資料 ---->直接修改 物件名.方法名() ---->間接修改 為了更好的儲存屬性安全,即不能隨意修改,一般的處理方式為 將屬性定義為私有屬性 新增一個可以呼叫的方法,供呼叫
【python基礎】模組、包
目錄 <4> as 1、什麼是模組 有過C語言程式設計經驗的朋友都知道在C語言中如果要引用sqrt函式,必須用語句#include <math.h>引入math.h這個標頭檔案,否則是無法正
【python基礎】if 的各種判斷真假
空的字串、列表、字典、元組,0,None 判斷時都為假; 非0,not None,有值的字串、列表、字典、元組,判斷都為真。 In [2]: if "" : ...: print ("a") ...: In [3]: if [] :
【python基礎】列表推導式
所謂的列表推導式,就是指的輕量級迴圈建立列表 1. 基本的方式 In [9]: a = [x for x in range(4)] In [10]: a Out[10]: [0, 1, 2, 3] In [11]: a = [x for x in range(1,15
【python基礎】python基礎5+6(set,函式,裝飾器,偏函式,異常處理)
一. python基礎5(set,函式) 1.1set型別 '''set 類似dict,,是一組key的集合,不儲存value 本質: 無序和無重複元素的集合,可以用來去重複 ''' #建立 #建立set需要一個list或tuple作為輸入 #set重複元組在set中會