Python棉花糖和PyCharm类型提示

问题描述 投票:1回答:1

我对使用python marshmallow库进行数据序列化很感兴趣,但是在使用marshmallow方法构造类时,PyCharm无法提供类属性,这给我带来了麻烦在示例中。

请考虑以下可能有人为的示例:

Schema.load

该代码有效-意味着数据在那里-但PyCharm无法建议类属性。我是否对此要求太多的PyCharm,或者我缺少什么?

python serialization pycharm marshmallow
1个回答
0
投票

仅出于后人的考虑,基于上面的回答,这使得它可行。

from marshmallow import Schema, post_load, fields

class User:
    def __init__(self, name, age):
        self.name = name
        self.age = age

class UserSchema(Schema):
    name = fields.String(required=True)
    age = fields.Integer(required=True)

    @post_load
    def make_user(self, data, **kwargs):
        return User(**data)

class UserHolder:
    def __init__(self):
        self.user = UserSchema().load({"name": "foo", "age": 42})

class UserHolderConsumer:
    def __init__(self):
        self.user_holder = UserHolder()

    def get_user(self):
        print("Name: {}; Age: {}".format(self.user_holder.user.name, self.user_holder.user.age))

if __name__ == "__main__":
    UserHolderConsumer().get_user()

© www.soinside.com 2019 - 2024. All rights reserved.