在Python中,可以使用__file__
属性来获取当前文件的路径。然而,如果想要在装饰器函数中获取装饰的函数所在的文件名,需要借助inspect
模块来实现。
首先,需要导入inspect
模块:
import inspect
然后,在装饰器函数中使用inspect.getfile()
函数来获取被装饰函数所在的文件路径。可以通过inspect.getfile()
函数的参数传入被装饰函数的引用,如下所示:
def decorator(func):
file_path = inspect.getfile(func)
# 其他操作
return func
如果想要获取文件名而不是文件路径,可以使用os.path.basename()
函数来提取文件名部分,如下所示:
import os
def decorator(func):
file_path = inspect.getfile(func)
file_name = os.path.basename(file_path)
# 其他操作
return func
需要注意的是,inspect.getfile()
函数返回的是被装饰函数所在的文件的绝对路径。如果想要获取相对路径,可以使用os.path.relpath()
函数进行转换。
综上所述,可以通过使用inspect
模块和os.path
模块来在继承文件中获取装饰器函数中的Python文件名。
领取专属 10元无门槛券
手把手带您无忧上云