给定一个描述 object.attribute 的 Python 字符串,我如何将属性的命名空间与属性分开?
期望的例子:
ns_attr_split("obj.attr") => ("obj", "attr")
ns_attr_split("obj.arr[0]") => ("obj", "arr[0]")
ns_attr_split("obj.dict['key']") => ("obj", "dict['key']")
ns_attr_split("mod.obj.attr") => ("mod.obj", "attr")
ns_attr_split("obj.dict['key.word']") => ("obj", "dict['key.word']")
注意:我知道编写自己的字符串解析器是一种选择,但我正在寻找一种更优雅的解决方案。滚动我自己的字符串解析器并不像 '.' 上的 rsplit 那样简单。因为上面列出的最后一个选项,给定的关键字可能包含命名空间分隔符。