python - 如何在包含基于json键的self关键字的类中定义__init__函数
问题描述
我有一个 json str,其中包含一个来自 API 的名为“self”的键。通常希望将字典传递给一个类,但是给定的键之一(self)会导致问题。没有惊喜。但我不知道如何解决它。
我的课看起来像这样:
class Issue:
def __init__(self, expand, fields, key, self):
self.expand = expand
self.assignee = fields['assignee']['displayName']
self.key = key
self.self = self
@classmethod
def from_json(cls, json_dict):
return cls(**json_dict)
要实例化我写的对象:
Issue.from_json(json_dictionary)
我收到无法修复的类型错误:
TypeError: __init__() got multiple values for argument 'self'
我已经尝试过带有前导下划线等的不同版本,但这无济于事。如果我这样做:
class Issue:
def __init__(self, expand, fields, key, aSelf):
self.expand = expand
self.assignee = fields['assignee']['displayName']
self.key = key
self.self = aSelf
@classmethod
def from_json(cls, json_dict):
return cls(**json_dict)
错误消息保持不变。您能否向我解释如何处理此类问题?
解决方案
调用方法的第一个参数self
只是一个约定。名字并不特别。从技术上讲,您不必这样称呼它。如果您有充分的理由,您可以将其称为其他名称:
def __init__(self_, expand, fields, key, self):
self_.expand = expand
self_.assignee = fields['assignee']['displayName']
self_.key = key
self_.self = self
推荐阅读
- javascript - HTML 5 input type="date" 如何删除“今天的日期”按钮
- android - 嵌套的viewpager2
- python - 如何更新 LabelFrame 标题(Tkinter)
- .net-core - 在 .NET Core 中使用带有 COM 互操作的 .NET Framework DLL
- javascript - 使用Javascript更新json文件中的json键?
- javascript - 打开和关闭jQuery的类
- javascript - 异步 XMLHttpRequest 响应后,ng-grid 未绑定最新数据
- intellij-idea - 场景步骤(Given,When,Then)未显示在 IntelliJ 控制台中(Cucumber-Java with Junit)
- python - 无法在 Keras 功能 API 中将 FeatureColumn 与类别列一起使用
- kotlin - 什么时候应该使用加号、减号、时间函数而不是使用 Kotlin 中的运算符?