pathlib.Path子类型的构造函数

时间:2017-04-06 08:58:38

标签: python pathlib

我想用额外的构造函数断言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())。我在网上尝试了不同的提议解决方案而没有任何进展。怎么办?

1 个答案:

答案 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__成员。