Computer >> Máy Tính >  >> Lập trình >> Python

Các loại trình quản lý ngữ cảnh Python

Trong python, ngữ cảnh thời gian chạy được hỗ trợ bởi câu lệnh with. Bối cảnh được xác định bởi trình quản lý ngữ cảnh. Sử dụng trình quản lý ngữ cảnh, chúng ta có thể tạo các lớp do người dùng xác định để xác định ngữ cảnh thời gian chạy. Nó đi vào nhiệm vụ trước khi thực thi phần nội dung câu lệnh và khi phần nội dung câu lệnh hoàn thành, nó sẽ kết thúc.

Có hai phương pháp khác nhau cho trình quản lý ngữ cảnh. Các phương pháp này -

Phương thức __enter __ ()

Phương thức __enter __ () được sử dụng để nhập vào ngữ cảnh thời gian chạy. Nó sẽ trả về đối tượng hiện tại hoặc đối tượng khác có liên quan. Giá trị trả về được liên kết với số nhận dạng trong mệnh đề của câu lệnh with.

Phương thức __exit __ (exc_type, exc_val, exc_tb)

Phương thức __exit __ () được sử dụng để trả về kết quả kiểu Boolean. Nó chỉ ra bất kỳ ngoại lệ nào đã xảy ra. Nếu có một ngoại lệ cho với , nó sẽ chuyển đến khối kết thúc.

Mã mẫu

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)

Đầu ra

Test File.
We can store different contents in this file
~!@#$%^&*()_+/*-+\][{}|:;"'<.>/,'"]