假设我有以下类(class):
class FileName(object):
def __init__(self,pathName):
self.pathName = pathName
def __repr__(self):
return self.pathName
someFile = FileName(r'c:\users\sarith\a.txt')
现在我知道我可以使用 os.stat(someFile.pathName) 或使用 os.stat(str(someFile)) 获取此文件的详细信息.有没有一种方法可以通过 os.stat(someFile) 获取详细信息。更具体地说,我的意思是有没有一个我可以覆盖的函数,这样当 FileName 的实例被 open 之类的函数调用时,它返回 pathName 属性?
请您参考如下方法:
这不是您期望存在的那种东西,但许多这样的函数实际上确实可以识别 __fspath__ method ,至少在 Python 3.6 上:
class FileName(object):
def __init__(self, path):
self.path = path
def __fspath__(self):
return self.path
# Actually works!
os.stat(FileName('/whatever'))
