1. 程式人生 > 實用技巧 >【小技巧】python print方法重寫

【小技巧】python print方法重寫

print方法的引數

print方法的引數:(在python3的命令列執行help(print)就可以看到)

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

將 value 列印到一個輸出流,預設的輸出流為 sys.stdout。

可選引數有:
file: 使用一個檔案物件作為輸出目標,預設值為當前輸出流 sys.stdout;
sep: 輸出的多個 value 之間的分隔符,預設為一個空格;
end: 完成所有 value 的輸出之後在其後新增的字元,預設為 \n 換行符;
flush: 布林值,是否立即重新整理緩衝區,即立刻將資料寫入到磁碟檔案;
關於flush,還有一點要說,預設情況下,flush 值為 False,這時只有當緩衝區滿,作業系統才會將資料寫入檔案中。

而close,也是在內部先呼叫 flush 方法來重新整理緩衝區,再執行關閉操作,這樣即使緩衝區沒有滿,也可以強制寫入資料,保證了資料的完整性。
如果程序意外退出或正常退出時為close檔案物件,快取區的內容將會丟失。

舉例:重寫print方法為log_print

# 重寫log_print方法,加入時間資訊
def log_print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False):
    print("當前時間:" + datetime.now().strftime('%Y-%m-%d %H:%M:%S')) # 這樣每次呼叫log_print()的時候,會先輸出當前時間,然後再輸出內容
    print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)