Secara default, print()
Python fungsi mengarahkan keluarannya ke sys.stdout
, yang dokumentasinya menentukan ini:
Saat interaktif,
stdout
danstderr
stream di-buffer baris. Jika tidak, stream di buffer seperti file teks biasa. Anda dapat mengganti nilai ini dengan-u
opsi baris perintah.
Perhatikan baik-baik bahwa dokumen tersebut tidak memberikan ruang untuk pengaruh lingkungan umum, seperti stdbuf
perintah, pada mode buffering sys.stdout
:tidak buffer jika -u
opsi digunakan (atau, dengan kata lain, jika variabel lingkungan PYTHONUNBUFFERED
telah ditetapkan), jika tidak, buffer garis jika interaktif dan buffer blok jika non-interaktif.
Program dapat mengontrol bufferingnya sendiri, seperti dokumen stdbuf
akui:
CATATAN:Jika PERINTAH menyesuaikan buffering aliran standarnya ('tee'does misalnya) maka itu akan menggantikan pengaturan terkait yang diubah oleh 'stdbuf'. Juga beberapa filter (seperti 'dd' dan 'cat' dll.) tidak menggunakan aliran untuk I/O, sehingga tidak terpengaruh oleh pengaturan 'stdbuf'.
Karena Python secara eksplisit menentukan detail buffering, masuk akal untuk berharap bahwa ia benar-benar mengelola bufferingnya secara afirmatif, sehingga memperdebatkan efek apa pun dari stdbuf
.