簡體   English   中英

在Python中創建具有嵌套屬性的空對象

[英]Creating an empty object with nested attributes in Python

我正在嘗試創建一個包含嵌套屬性的空對象,如下所示:

form = type('', (), {})()
form.foo.data = ''

但是我得到以下屬性錯誤:

>>> form = type('', (), {})()
>>> form.foo.data = ''
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'data'

我應該如何構造對象來實現這一目標?

根據類型函數,第三個參數應采用字典的形式。 因此,對於嵌套屬性,可以先創建對象,然后在字典中使用它。 這樣的事情可能會起作用-

da = type('',(),{'data':1})    
a = type('',(),{'foo':da}) 

我不明白你的意思,但是你可以使用namedtuple

>>>from collections import namedtuple

>>>foo = namedtuple('foo', "data tuple dict")
>>>foo.data = ""
''
>>> foo.tuple = ()
>>> foo.tuple
()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM