python字符串切片转换成多级路径(星号*的打包和解包)
实现
知识点
1、函数参数 *args
和 **kwargs
的作用
2、参数解包
其中每个非空部分后面都紧跟一个目录分隔符,最后一个部分除外,这意味着如果最后一个部分为空,则结果将以分隔符结尾
1、星号*
的基础用法
1 | 9 * 9 |
2、星号*
的高级用法之打包
1 | def pack(a, *b, **c): |
执行该函数
1 | # python3 demo_pack_unpack.py |
这里看到pack
函数有9个参数,6个位置参数
和3个关键字参数
在函数内部,
- 通过
*b
获取除了明确的位置参数(这里的1)之外的其他所有的位置参数(2,3,4,5,6) - 通过
**c
获取所有的关键字参数
另外这里需要注意几个规范
1)*b 一般用 *args
来表示, **c 一般用 **kwargs
来表示,
2)位置参数一般在关键字参数的前面,
3、星号*
的高级用法之解包
参数和打包pack一样, 这里通过函数名做区分
1 | def unpack(a, *b, **c): |
执行结果如下
1 | # python3 demo_pack_unpack.py |
从结果我们知道:
1、*str_1 被解包
成了 元组 (‘a’, ‘b’, ‘c’),但是在 *str_1 前面还有个位置参数,所以把元组第一个元素给了a
参数,
2、**dict_1 被解包
成了dict类型,
3、Python中类路径对象的概念
参考 https://docs.python.org/zh-cn/3/glossary.html#term-path-like-object
4、os.path.join() 中 关于路径的拼接说明
python字符串切片转换成多级路径(星号*的打包和解包)