python pathlib运算符'/'-它是如何做到的?

时间:2018-10-31 13:00:25

标签: python-3.x

我发现pathlib语法-还是python语法-令人惊讶。我想知道这如何使正斜杠“ /”充当Windowspath等的连接器。它会覆盖/重载“ /”吗?似乎在一个神奇的上下文中,斜线位于WindowsPath类型对象和字符串之间。如果我在2个字符串之间尝试,则无法加入2个字符串(即“ 123” /“ 123”->失败)

p=pathlib.Path(".")

p
Out[66]: WindowsPath('.')

p.cwd()
Out[67]: WindowsPath('C:/Users/user1')

p.cwd() / "mydir"
Out[68]: WindowsPath('C:/Users/user1/mydir')

1 个答案:

答案 0 :(得分:2)

Path类具有__truediv__方法,该方法返回另一个Path。您可以对自己的班级做同样的事情:

>>> class WeirdThing(object):
        def __truediv__(self, other):
            return 'Division!'

>>> WeirdThing() / WeirdThing()
'Division!'