python 打印调用函数名和文件名

import inspect
import sys

def get_current_function_name():
funcName = sys._getframe().f_back.f_code.co_name # 获取调用函数名
print(dir(sys._getframe()))
print(dir(sys._getframe().f_back.f_code.co_filename))
print(sys._getframe().f_back.f_code.co_filename,"#",name,"#",file) #打印调用该函数 语句所在文件和 打印该函数所在模块和打印该函数所在文件名
#E:/project/script/testmodule/test04.py # script.testmodule.test05 # E:\project\script\testmodule\test05.py
print(sys._getframe().f_back.f_code.co_names) #(‘unittest‘, ‘chardet‘, ‘script.testmodule‘, ‘test05‘, ‘get_current_function_name‘)
lineNumber = sys._getframe().f_back.f_lineno # 获取行号

print(sys._getframe().f_code.co_name,"#########")  # 获取当前函数名
print(funcName,lineNumber)
print("####%s.%s invoked" % (__name__, inspect.stack()))
return inspect.stack()[1][3]

class MyClass:
def function_one(self):
print("%s.%s invoked"%(self.__class__.__name__, get_current_function_name()))
if name == "main":
myclass = MyClass()
myclass.function_one()
print(sys._getframe().f_code.co_filename)

原文地址:https://www.cnblogs.com/wanderingfish/p/10182724.html

时间: 2024-10-26 03:44:03

python 打印调用函数名和文件名的相关文章

python 获取当前调用函数名等log信息

import sys funcName = sys._getframe().f_back.f_code.co_name #获取调用函数名 lineNumber = sys._getframe().f_back.f_lineno #获取行号 print sys._getframe().f_code.co_name # 获取当前函数名 import inspect def get_current_function_name(): return inspect.stack()[1][3] class

Python之调用函数

Python之调用函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数 abs,它接收一个参数. 可以直接从Python的官方网站查看文档: http://docs.python.org/2/library/functions.html#abs 也可以在交互式命令行通过 help(abs) 查看abs函数的帮助信息. 调用 abs 函数: >>> abs(100) 100 >>> abs(-20) 20

PHP 打印调用函数入口地址(堆栈),方便调式

今天网站出现一个BUG,然后直接在数据库类里面写日志,看是哪条SQL出了问题,SQL语句到是找到了,但是不知道这条SQL语句来自何处,于是就想啊,如果能有一个办法,查看当前正在运行的这个方法是被哪个方法调用的,以及上一个方法又是哪个方法调用的,以此类推,找到入口地址多好啊.不过以前自己也想过,也在网上去搜过,就是没有找到相关的办法,今天一同事(前辈)说JAVA里面这种调试用得很普遍,叫这种堆栈调试,我是就在网上搜PHP堆栈.居然被我找到了,然后把自己的办法写出来. //调用堆栈函数,查找调用函数

python 用字符串调用函数名

方法暂时看到两种: ①eval: def a():     print '1' func_a = 'a' eval(func_a)() 结果:1 ②.vars: 获取当前环境中的全部变量. def a():     print '1' func_a = 'a' vars()[func_a]() 结果:1 对于多个函数统一管理的时候,上面两种写法比较方便,可以直接通过管理函数名变量,来直接控制函数的调用. 比如: def a():     print '1'      def b():     p

Python(调用函数、定义函数)

先定义,后使用,定义阶段只判断语法,不执行代码.上面定义阶段 if 1>2 print--有语法错误,所以报错,下面,调用了不存在的变量,不算语法错误 一.调用函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://docs.python.org/3/library/functions.html#abs 也可以在交互式命令行通过help(abs)查看ab

python 之调用函数

Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://docs.python.org/3/library/functions.html#abs 也可以在交互式命令行通过help(abs)查看abs函数的帮助信息. 调用abs函数: >>> abs(100) 100 >>> abs(-20) 20 >>> abs(1

python动态修改函数名

困惑 在之前用sgmllib解析网页的时候遇到了·def do_a(self,attr)·这类的函数,可以自动识别<a>并解析其中内容. 在看learningpythonthehardway时也遇到了render.index()之类的随着url路由而变化的函数名. 遂思考,怎么才能实现这种动态的函数名呢? 研究 在使用Java.C.C#等其他语言时,并没有这类的功能.有可能是python独有功能,遂百度,未发现相关介绍. python为动态语言,且为面向对象语言,一切为对象.函数也是一个对象,

python中调用函数

python中有内置的函数,我们可以直接调用来使用.调用函数需要写函数名和参数. 一.abs():求绝对值的函数,这个函数需要传一个整数或者浮点数作为参数. 如果参数个数传递错误,函数会报错:需要一个参数,但是给了两个 如果参数类型传递错误,函数也会报类型错误: 二.cmp():比较大小函数,需要传进两个参数 cmp(x,y) 当x>y,返回1: 当x=y,返回0: 当x<y,返回-1. 三.类型转换函数 int():需要传一个参数,将参数转换成整数 str():需要传一个参数,将参数转换成字

python 动态调用函数

1. 根据字符串名称 动态调用 python文件内的方法eval("function_name")(参数) 2. 根据字符串 动态调用类中的静态方法,getattr(ClassName,"function_name")(参数) 3. apply(functoin_name,parameters)  这个function_name不是字符串,而是函数对象本身:parameters是参数,类似(a,b,...)这样的格式 4. 当函数不确定参数的数目时候,采用 一个 *