使用现有的PATHLIB库Path()对象的Python 3.x自定义函数链接

时间:2019-02-07 20:42:42

标签: python function object chaining pathlib

我在Python(3.x)脚本中基于pathlib模块定义了一个自定义函数:

def mk_dir(self):
    self.mkdir(parents=True,exist_ok=True)

my_path = Path('./1/2/3/')
mk_dir(my_path)

是使用pathlib.Path.mkdir()函数创建新目录的快捷方式。

此函数将创建给定路径(parents=True)的所有丢失的父项,并且如果目录已经存在(exist_ok=True)也不会引发错误。

但是,我想修改我的函数,使其以链接函数的形式运行,即my_path.mk_dir();而不是通过传递变量mk_dir(my_path)来代替传统方法。

我通过以下方式尝试了

from pathlib import Path

class Path():
    def mk_dir(self):
        self.mkdir(parents=True,exist_ok=True)
        return self

my_path = Path('./1/2/3/')
my_path.mk_dir()

但是我得到的最好的是这个错误:

AttributeError: 'WindowsPath' object has no attribute 'mk_dir'

如何在不更改模块源文件本身的情况下实现这一目标?

我不确定这些问题:

  1. 是否需要定义class
  2. 该函数是否需要返回任何内容?
  3. 而且,最好先检查目录if not my_path.is_dir(): ...是否存在,或者使用exist_ok=True属性是否可以?

0 个答案:

没有答案