Passing default list argument to dataclasses

前端 未结 2 631
离开以前
离开以前 2020-12-05 10:54

I would like to pass default argument in my class, but somehow I am having problem:

from dataclasses import dataclass, field
from typing import List

@datac         


        
2条回答
  •  难免孤独
    2020-12-05 11:08

    For complex datatypes i tend to abbreviate like so:

    import copy
    from dataclasses import dataclass, field
    from typing import Dict, Tuple
    
    def default_field(obj):
        return field(default_factory=lambda: copy.copy(obj))
    
    @dataclass
    class C:
        complex_attribute: Dict[str, Tuple[int, str]] = default_field({"a": (1, "x"), "b": (1, "y")})
    

提交回复
热议问题