Hướng dẫn python flush not working - python flush không hoạt động
Tôi đề nghị năm cách làm điều này: Show
Python 3.3+Sử dụng Python 3.3 trở lên, bạn chỉ có thể cung cấp 9 làm đối số từ khóa cho hàm 0:
Python 2 (hoặcHọ đã không gửi lại đối số 1 cho Python 2.7, vì vậy nếu bạn đang sử dụng Python 2 (hoặc dưới 3.3) và muốn mã tương thích với cả 2 và 3, tôi có thể đề xuất mã tương thích sau. (Lưu ý nhập 2 phải ở/rất "gần đầu mô -đun của bạn"):
Mã tương thích ở trên sẽ bao gồm hầu hết các mục đích sử dụng, nhưng để xử lý kỹ lưỡng hơn nhiều, hãy xem mô -đun 3.Ngoài ra, bạn chỉ có thể gọi 4 sau khi in, ví dụ, với câu lệnh in trong Python 2:
Thay đổi mặc định trong một mô -đun thành from __future__ import print_function import sys if sys.version_info[:2] < (3, 3): old_print = print def print(*args, **kwargs): flush = kwargs.pop('flush', False) old_print(*args, **kwargs) if flush: file = kwargs.get('file', sys.stdout) # Why might file=None? IDK, but it works for print(i, file=None) file.flush() if file is not None else sys.stdout.flush() 9Bạn có thể thay đổi mặc định cho chức năng in bằng cách sử dụng functools.partial trên phạm vi toàn cầu của mô -đun:
Nếu bạn nhìn vào chức năng một phần mới của chúng tôi, ít nhất là trong Python 3:
Chúng ta có thể thấy nó hoạt động giống như bình thường:
Và chúng ta thực sự có thể ghi đè mặc định mới:
Lưu ý một lần nữa, điều này chỉ thay đổi phạm vi toàn cầu hiện tại, bởi vì tên in trên phạm vi toàn cầu hiện tại sẽ làm lu mờ hàm 0 tích hợp (hoặc không liên kết chức năng tương thích, nếu sử dụng một trong Python 2, trong phạm vi toàn cầu hiện tại đó).Nếu bạn muốn thực hiện điều này bên trong một hàm thay vì trên phạm vi toàn cầu của một mô -đun, bạn nên đặt cho nó một tên khác, ví dụ:
Nếu bạn tuyên bố nó là toàn cầu trong một hàm, bạn sẽ thay đổi nó trên không gian tên toàn cầu của mô -đun, vì vậy bạn chỉ nên đặt nó vào không gian tên toàn cầu, trừ khi hành vi cụ thể đó chính xác là những gì bạn muốn. Thay đổi mặc định cho quy trìnhTôi nghĩ rằng tùy chọn tốt nhất ở đây là sử dụng cờ 7 để có được đầu ra không bị ảnh hưởng.
hoặc
Từ các tài liệu:
Thay đổi mặc định cho môi trường hoạt động shellBạn có thể có được hành vi này cho tất cả các quy trình Python trong môi trường hoặc môi trường kế thừa từ môi trường nếu bạn đặt biến môi trường thành một chuỗi không trống: ví dụ: trong Linux hoặc OSX: 0hoặc Windows: 1Từ các tài liệu:
Phụ lụcĐây là sự trợ giúp về chức năng in từ Python 2.7.12 - Lưu ý rằng không có đối số 1: 2 |