# Time: ${DATE} ${TIME}
# Author: 自己名字
# File: ${NAME}.py
# Software: ${PRODUCT_NAME}
from builtins import print as _print
from sys import _getframe
# 自定义print函数
def print(*arg, **kw):
s = f'{_getframe(1).f_lineno} 行:' # 注此处需加参数 1。
return _print(f"《{__name__}》-{s}", *arg, **kw)
print("此处显示行数。")
运行结果为:
《__main__》-9 行: 此处显示行数
说明:
sys模块中的_getframe函数会返回一个frame实例,它有下列属性:
‘clear’, ‘f_back’, ‘f_builtins’, ‘f_code’, ‘f_globals’, ‘f_lasti’, ‘f_lineno’, ‘f_locals’, ‘f_trace’, ‘f_trace_lines’, ‘f_trace_opcodes’
其中 ‘f_lineno’ 可以返回_getframe函数执行时所在行的行数。
_getframe函数的参数为整型时会返回_getframe(int)所在int层级的属性。
__main__:如果为本文件的print,则显示《__main__》,其它导入文件的,则显示 《文件名》