1. 程式人生 > >在python中獲取當前位置所在的行號和函式名

在python中獲取當前位置所在的行號和函式名

對於python,這幾天一直有兩個問題在困擾我:

  • 1.python中沒辦法直接取得當前的行號和函式名。這是有人在論壇裡提出的問題,底下一群人只是在猜測python為什麼不像__file__一樣提供__line__和__func__,但是卻最終也沒有找到解決方案。
  • 2.如果一個函式在不知道自己名字的情況下,怎麼才能遞迴呼叫自己。這是我一個同事問我的,其實也是獲取函式名,但是當時也是回答不出來。

但是今晚!所有的問題都有了答案。
一切還要從我用python的logging模組說起,logging中的format中是有如下選項的:

Python
12345678910111213141516171819202122232425262728293031323334353637383940%(name)sNameofthelogger(loggingchannel)%(levelno)sNumericlogginglevelforthemessage(DEBUG,INFO,WARNING,ERROR,CRITICAL)%(levelname)sTextlogginglevelforthemessage("DEBUG","INFO","WARNING","ERROR","CRITICAL")%(pathname)sFullpathnameof
thesourcefilewheretheloggingcall was issued(ifavailable)%(filename)sFilenameportionofpathname%(module)sModule(nameportionoffilename)%(lineno)dSourcelinenumberwheretheloggingcallwasissued(ifavailable)%(funcName)sFunctionname%(created)fTimewhentheLogRecordwascreated(time.time()returnvalue)%(asctime)sTextual
timewhentheLogRecordwascreated%(msecs)dMillisecondportionofthecreationtime%(relativeCreated)dTimeinmillisecondswhentheLogRecordwascreated,relative to the timethe loggingmodule was loaded(typically at application startup time)%(thread)dThreadID(ifavailable)

相關推薦

Python 如何獲取當前位置所在的檔名,函式,以及

在C/C++中可以分別使用 __FILE__ , __FUNCTION__ , __LINE__ 來得到當前位置所在的檔名,函式名,行號 在Python中可以通過模組sys中的函式來獲得當前位置所在的檔名,函式名,以及行號 import sys def function(

python獲取當前位置所在的函式

對於python,這幾天一直有兩個問題在困擾我: 1.python中沒辦法直接取得當前的行號和函式名。這是有人在論壇裡提出的問題,底下一群人只是在猜測python為什麼不像__file__一樣提供__line__和__func__,但是卻最終也沒有找到解決方案。

python系列】python 獲取當前位置所在的檔名、函式

import sys def get_cur_info():     print sys._getframe().f_code.co_filename  #當前檔名,可以通過__file__獲得     print sys._getframe().f_code.co_name  #當前函式名     pri

python使用sys模板logging模組獲取函式的方法

def currentframe():     """Return the frame object for the caller's stack frame."""     try:         raise Exception     except:         return sys.exc_in

python獲取當前時間並轉換為時間戳

# 引入模組 import time from datetime import datetime 程式碼: # 獲取當前時間 times=datetime.now().strftime('%Y-%m-%d %H:%M:%S') print times # 轉為時間陣列 timeArr

python獲取當前日期字串(格式:X年X月X日)

編碼環境:   gvim 7.4 執行環境:   win7-32(en)powershell   python 2.7.11 程式碼: # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaulte

Android獲取當前位置的使用步驟

在Android中得到當前位置的步驟 1.在AndroidManifest.xml中宣告許可權 android.permission.ACCESS_FINE_LOCATION(或者android.permission.ACCESS_COARSE_LOCAT

如何在jsp頁面呼叫的java類獲取當前執行緒的requestsession

當在jsp頁面中呼叫的java類進行資料的處理,查庫操作,然後需要操作session的時候可以這樣獲取到當前執行緒的session。HttpServletRequest request = ((Ser

版本更新,獲取當前app的版本版本名稱.

versionCode:用於本地app和後臺的app提供的版本進行對比,用於更新功能實現。versionName:用於展現給客戶看的版本資訊。 1.app更新功能; 2.app靜默下載、靜默安裝; 3.

python關於統計相關計算的庫函式

一、python庫下載及安裝 下載地址為http://www.lfd.uci.edu/~gohlke/pythonlibs/ 如下所示: 下拉此頁,可發現該頁為python庫的下載頁面:

python比較兩個文件內容的不同之處, 並輸出內容.

exist file diff pre ffline += == list cmp 代碼部分: ‘‘‘cmpfile.py - 比對兩個文件, 如果有不同之處, 打印內容和行號‘‘‘ import os class cmpFile: def __init__(

【轉】python獲取python版本的方法

n) https href light nor body true print brush 原文 python3 #!/usr/bin/python # 第1種方法 import platform print(platform.python_version())

在JavaScript獲取當前頁面的滾動位置

scrollTop要獲取當前頁面的滾動條縱坐標位置,用: document.documentElement.scrollTop; 而不是: document.body.scrollTop; documentElement 對應的是 html 標簽,而 body 對應的是 body 標簽。 documentEl

easyui datagrid獲取選中行的

用easyui時候有個刪除選中行的需求,於是得知道選中的行的行號,才能在介面上呼叫它的delete方法刪除選中行。 選中行可以用    var datas = $('#xxxx').datagrid('getSelections');獲得。這裡獲得的是所有選中行,在參照ap

Object-C獲取當前觸控點的座標位置

//當有一個或多個手指觸控事件在當前檢視或window窗體中響應 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSSet *allTouches = [event allTouc

tableView,在didSelectRowAtIndexPath,獲取當前

先說一點廢話,記錄下自己是如何遇到這個問題的,長長記性! 在didSelectRowAtIndexPath方法中,我要點選當前的 cell, 跳轉到下一個控制器,然後將當前 cell 的組名,傳給下

JAVA獲取當前執行的類,方法名,

public static String getTraceInfo(){ StringBuffer sb = new StringBuffer(); StackTraceElement[] stacks =

Python獲取字典value的最大值對應的鍵的方法

可以用max(dict,key=dict.get)方法獲得字典dict中value的最大值所對應的鍵的方法,max(dict, key)方法首先遍歷迭代器,並將返回值作為引數傳遞給key對應的函式,然後將函式的執行結果傳給key,並以此時key值為標準進行大小判斷,返回最大值

如何在Java獲取當前程式碼行行

為了實現自定義的log類,能夠輸出具體的程式碼行行號,我通過使用StackTraceElement物件實現了。 這裡指出需要注意的幾個問題:1. 程式中返回的程式碼行行號,是新建StackTrackElement物件的那一行。2. 可以通過傳參的方法實現輸出特定行行號。具體實

HTML5頁面直接調用百度地圖API,獲取當前位置,直接導航目的地(轉)

wid dir tle mark utf-8 mil 獲取 open init HTML5頁面直接調用百度地圖API,獲取當前位置,直接導航目的地 我是應用在微信中,自定義菜單,菜單直接鏈接到這個HTML5頁面,獲取當前位置後,頁面中定好目的地,這樣打開頁面後直接進入導航頁