相关疑难解决方法(0)

将嵌套的Python dict转换为对象?

我正在寻找一种优雅的方法,使用一些嵌套的dicts和列表(即javascript样式的对象语法)在dict上使用属性访问来获取数据.

例如:

>>> d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]}
Run Code Online (Sandbox Code Playgroud)

应该可以通过这种方式访问​​:

>>> x = dict2obj(d)
>>> x.a
1
>>> x.b.c
2
>>> x.d[1].foo
bar
Run Code Online (Sandbox Code Playgroud)

我认为,如果没有递归,这是不可能的,但是什么是获得dicts的对象样式的好方法?

python dictionary object

509
推荐指数
20
解决办法
23万
查看次数

Python 中可变嵌套 Dict 的类型提示

由于我在 Python 中经常使用类型提示,因此我遇到了递归函数接受dict,str作为键和intdict作为值 ( Dict[str, Union[int, Dict[...]]) 的场景。此时的问题是可能的dict-value 也有str作为键和intdict作为值 ( Dict[str, Union[int, Dict[Dict[str, Union[int, Dict[...]]]])。

但是,我不知道传递的字典有什么深度。是否有可能通过类型提示来可视化这种重复模式?

python type-hinting python-typing

9
推荐指数
1
解决办法
4006
查看次数

python对象可以嵌套属性吗?

我有一个对象定义如下

class a():
    @property
    def prop(self):
        print("hello from object.prop")
        @property
        def prop1(self):
            print("Hello from object.prop.prop")
Run Code Online (Sandbox Code Playgroud)

我打电话的时候

>>> obj = a()
>>> obj.prop
hello from object.prop
>>> obj.prop.prop
Run Code Online (Sandbox Code Playgroud)

我收到以下回溯错误

Traceback (most recent call last):
  File "object_property.py", line 13, in <module>
    a.prop.prop1
AttributeError: 'NoneType' object has no attribute 'prop1'
Run Code Online (Sandbox Code Playgroud)

我想弄清楚的是我是否可以为对象定义嵌套属性?

python object

6
推荐指数
1
解决办法
5906
查看次数

标签 统计

python ×3

object ×2

dictionary ×1

python-typing ×1

type-hinting ×1