Python輸出文件名以及代碼行號,便於調試程序

我相信很多人在調試Python代碼時都是print的重度使用者.我也曾想過學一學logging模塊,但是粗略一看還是print好用啊.但是當時調試還行,隔一天,我就不知道是哪兒的print在輸出這些信息了,我想刪掉它們啊.於是乎,一個輸出文件名以及行號的print就顯得很有必要了.

Python獲取當前文件名和行號

獲取文件名

直接使用__file__變量即可,它指明瞭當前腳本的路徑.

獲取行號

使用sys._getframe().f_lineno,代表當前代碼的行號

編寫自己的print函數

我在Python路徑中加入了自己的一個包,裏面有我自己寫的各種常用的函數,其中就包括如下的函數:

def debugPrinter(file, lineno, data=None):
    """
    輸出帶有文件名和行號的調試信息
    :param file: 對應__file__變量
    :param lineno: 對應sys._getframe().f變量
    :param data: 需要輸出的信息
    :return:
    """
    fileName = file.split('/')[-1]
    lineno = lineno.f_lineno

    print(f'[{fileName} {lineno}] {data}')

輸出效果如下

[BS_threadV3.py 130] iou: 1.0

這樣,再也不擔心以後找不到是哪裏在輸出信息了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章