簡體   English   中英

如何將 Python 中的數據類用於復雜的 __init__?

[英]how to use dataclass in Python for complex __init__?

例如, self.env有一個復雜的實現。 如何將其轉移以使用數據類?

class Request(object):

    def __init__(self, env: str, email: str, password: str):
        self.env = env if len(env) > 2 else 'default'
        self.email = email
        self.password = password

您需要按照文檔中的描述實現__post_init__(self)方法。 這允許您在初始化發生后添加驗證步驟

@dataclass
class Request:
    env: str
    email: str
    password: str

    def __post_init__(self):
        self.env = self.env if len(self.env)>2 else 'default'

Request('a', 'hello@world.com', 'qwerty1234')
# returns:
Request(env='default', email='hello@world.com', password='qwerty1234')

Request('test2', 'hello@world.com', 'qwerty1234')
# returns:
Request(env='test2', email='hello@world.com', password='qwerty1234')

暫無
暫無

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

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