[英]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.