我想用额外的构造函数断言pathlib.Path
,如下所示
import pathlib
class TempDirPath(type(pathlib.Path())):
def __init__(self, path):
assert not os.path.isabs(path), "Temporary directory path must be relative"
super(TempDirPath, self).__init__(path)
但这个错误为
TypeError: object.__init__() takes no parameters
为什么super(TempDirPath, self)
评估为object
。不应该是type(pathlib.Path())
。我在网上尝试了不同的提议解决方案而没有任何进展。怎么办?
答案 0 :(得分:1)
更新:经过一番挖掘后发现
class TempDirPath(type(pathlib.Path())):
def __init__(self, path):
assert not self.is_absolute(), "Temporary directory path '{}' must be relative".format(self)
解决了它,因为在Path
成员中初始化了__new__
。它没有__init__
成员。