ในไพ ธ อน บริบทรันไทม์ได้รับการสนับสนุนโดยคำสั่ง with บริบทถูกกำหนดโดยตัวจัดการบริบท การใช้ตัวจัดการบริบท เราสามารถสร้างคลาสที่กำหนดโดยผู้ใช้เพื่อกำหนดบริบทรันไทม์ มันเข้าสู่งานก่อนที่จะดำเนินการเนื้อหาของคำสั่ง และเมื่อเสร็จสิ้นเนื้อหาของคำสั่ง มันก็จะสิ้นสุดลง
มีสองวิธีที่แตกต่างกันสำหรับตัวจัดการบริบท วิธีการเหล่านี้คือ −
วิธีการ __enter__()
เมธอด __enter__() ใช้เพื่อเข้าสู่บริบทรันไทม์ มันจะส่งคืนวัตถุปัจจุบันหรือวัตถุอื่นที่เกี่ยวข้อง ค่าที่ส่งคืนถูกผูกไว้กับตัวระบุในประโยคคำสั่ง with
วิธีการ __exit__(exc_type, exc_val, exc_tb)
เมธอด __exit__() ใช้เพื่อส่งคืนผลลัพธ์ประเภทบูลีน มันบ่งชี้ข้อยกเว้นใด ๆ ที่เกิดขึ้น หากมีข้อยกเว้นสำหรับ กับ คำสั่งก็จะไปถึงจุดสิ้นสุด
โค้ดตัวอย่าง
class MyFileManager:
def __init__(self, fname):
self.file_name = fname
def __enter__(self):
self.myFile = open(self.file_name, 'r')
return self.myFile
def __exit__(self, exc_type, exc_val, exc_tb):
if self.myFile:
self.myFile.close()
with MyFileManager('sampleTextFile.txt') as myFile:
x = myFile.read()
print(x) ผลลัพธ์
Test File.
We can store different contents in this file
~!@#$%^&*()_+/*-+\][{}|:;"'<.>/,'"]