Tôi có một dự án lớn bao gồm đủ số lượng lớn các mô-đun, mỗi mô-đun in một cái gì đó đến đầu ra tiêu chuẩn. Bây giờ khi dự án đã tăng kích thước, không có lớn. của print
báo cáo in nhiều vào ra std mà đã có những chương trình đáng kể chậm hơn.
Vì vậy, bây giờ tôi muốn quyết định trong thời gian chạy có hay không in bất cứ thứ gì lên thiết bị xuất chuẩn. Tôi không thể thay đổi các mô-đun vì có rất nhiều trong số chúng. (Tôi biết rằng tôi có thể chuyển hướng thiết bị xuất chuẩn đến một tệp nhưng ngay cả điều này cũng khá chậm.)
Vì vậy, câu hỏi của tôi là làm thế nào để tôi chuyển hướng thiết bị xuất chuẩn thành không có nghĩa là làm thế nào để tôi print
tuyên bố không làm gì?
# I want to do something like this.
sys.stdout = None # this obviously will give an error as Nonetype object does not have any write method.
Hiện tại ý tưởng duy nhất tôi có là tạo một lớp có phương thức ghi (không làm gì) và chuyển hướng thiết bị xuất chuẩn sang một thể hiện của lớp này.
class DontPrint(object):
def write(*args): pass
dp = DontPrint()
sys.stdout = dp
Có một cơ chế sẵn có trong python cho điều này? Hoặc có một cái gì đó tốt hơn thế này?