История изменений
Исправление micronekodesu, (текущая версия) :
Я видел что ты написал, а если бы почитал тред то видел бы что это уже предлагали.
Любые типы, в том числе и собственные, в том числе и всякие .get_data() обрабатываются тривиально.
>>> class MyMegaClass:
... def get_data(cls):
... return 'ololo'
...
>>> foo = {'bar': MyMegaClass()}
>>> getpath(foo, 'bar', 'get_data()', default='')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "./script.py", line 7, in getpath
return getpath(tree[key], *more_keys, default)
File "./script.py", line 6, in getpath
elif key in tree:
TypeError: argument of type 'MyMegaClass' is not iterable
Исходная версия micronekodesu, :
Я видел что ты написал, а если бы почитал тред то видел бы что это уже предлагали.
Любые типы, в том числе и собственные, в том числе и всякие .get_data() обрабатываются тривиально.
>>> class MyMegaClass:
... def get_data(cls):
... return 'ololo'
...
>>> foo = {'bar': MyMegaClass()}
>>> getpath(foo, 'bar', 'get_data()', default='')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/tmp/se/script.py", line 7, in getpath
return getpath(tree[key], *more_keys, default)
File "/tmp/se/script.py", line 6, in getpath
elif key in tree:
TypeError: argument of type 'MyMegaClass' is not iterable