Comment utiliser Python pour obtenir le nom de la fonction en cours d'exécution

怪我咯
Libérer: 2017-04-10 11:11:51
original
1539 Les gens l'ont consulté

Cet article présente principalement les informations pertinentes sur le code de l'instance de méthode de python pour obtenir le nom de l'instance en cours d'exécution. fonction, qui est obligatoire Les amis peuvent se référer à l'exemple de code de la méthode

python pour obtenir le nom de la fonction en cours d'exécution

Résumé : Méthode pour obtenir le code source nom, nom de la fonction et numéro de ligne de la fonction en c/c++ C'est très simple, FILE, FUNCTION et LINE python n'ont pas cette syntaxe, mais elle peut également être obtenue par une certaine méthode. Voici un exemple, en utilisant les informations d'exception. pour obtenir [peut entraîner une perte de performances]

Collez directement le code [veuillez vous référer à Python Core Programming 4.4]

#Obtenez le nom de la fonction où la fonction est appelée (appelée)

#author:peterguo@vip.qq.com 
def get_func_name():
  import sys
  try:
    raise Exception
  except:
    exc_info = sys.exc_info()                             #返回 异常类型,异常,traceback对象
    traceObj = exc_info[2]                               #traceback对象
    frameObj = traceObj.tb_frame                         #获取frame对象,即本函数的frame信息
    #print frameObj.f_code.co_name,frameObj.f_lineno         #请在使用的时候将其注释
    Upframe = frameObj.f_back                           #获取该代码段的frame信息,即调用该函数的函数frame
    #print Upframe.f_code.co_name, Upframe.f_lineno          #请在使用的时候将其注释
    return (Upframe.f_code.co_name, Upframe.f_lineno)[0]      #获取名称
调用方法
Copier après la connexion

Obtenir le chemin du nom de fichier, le nom de la fonction, le numéro de ligne

-- ------------------------- ------------------------- ------------------------- -

def getCurRunPosInfo():
  import sys
  try:
    raise Exception
  except:
    exc_info = sys.exc_info()    
    traceObj = exc_info[2]   
    frameObj = traceObj.tb_frame 
    #print frameObj.f_code.co_name,frameObj.f_lineno
    Upframe = frameObj.f_back            
    #print Upframe.f_code.co_name, Upframe.f_lineno 
    return (Upframe.f_code.co_filename, Upframe.f_code.co_name, Upframe.f_lineno)
Copier après la connexion


#测试代码
def test1():
  print getCurRunPosInfo()

def test2():
  print get_func_name()
  
输出:
>>('demo.py', 'test1', 44)
>>test2
Copier après la connexion


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!