开发者社区> 问答> 正文

Python棉花糖和PyCharm类型暗示

我对使用python marshmallow库进行数据序列化很感兴趣,但是我遇到了一个问题,PyCharm无法在使用模式构造类时建议类属性。加载方法,如示例所示。 考虑以下可能是人为设计的例子:

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()

代码可以工作——意味着数据在那里——但是PyCharm不能建议类属性。我对PyCharm的要求是不是太高了,还是少了什么? 问题来源StackOverflow 地址:/questions/59385987/python-marshmallow-and-pycharm-type-hinting

展开
收起
kun坤 2019-12-25 22:10:32 492 0
1 条回答
写回答
取消 提交回答
  • 只是为了子孙后代,基于以上的答案,下面的方法是可行的。

    self.user: UserSchema = UserSchema().load({"name": "foo", "age": 42})
    
    2019-12-25 22:10:37
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载