我以PosixPath
这种方式进行了子类化:
from pathlib import PosixPath
class Node(PosixPath):
def __new__(cls, *args, mykwarg=None, **kwargs):
self = super().__new__(cls, *args, **kwargs)
self._mykwarg = mykwarg
return self
并添加了几种@property
方法。
现在,如果我想测试它(我使用pytest
),它不起作用:
def test_Node(fs):
fs.create_file('simple.txt')
n = Node('simple.txt')
n.stat()
运行测试输出(在第 行n.stat()
):
E FileNotFoundError: [Errno 2] No such file or directory: 'simple.txt'
并非完全出乎意料,因为我猜,只有PosixPath
. 修补了pyfakefs
,而不是我自己的类,即使它继承自PosixPath
.
但我希望能够在保留pyfakefs
. 继承的方法、字段等PosixPath
仍然按pyfakefs
原样修补PosixPath
,只有我添加的属性没有修补。有没有办法做到这一点?