How can I create an object and add attributes to it?

前端 未结 16 1732
长情又很酷
长情又很酷 2020-11-28 00:36

I want to create a dynamic object (inside another object) in Python and then add attributes to it.

I tried:

obj = someobject
obj.a = object()
setattr         


        
16条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-11-28 01:16

    There is types.SimpleNamespace class in Python 3.3+:

    obj = someobject
    obj.a = SimpleNamespace()
    for p in params:
        setattr(obj.a, p, value)
    # obj.a.attr1
    

    collections.namedtuple, typing.NamedTuple could be used for immutable objects. PEP 557 -- Data Classes suggests a mutable alternative.

    For a richer functionality, you could try attrs package. See an example usage.

提交回复
热议问题