【问题标题】:Python assign dictionary value in a constructor [duplicate]Python在构造函数中分配字典值[重复]
【发布时间】:2020-08-20 00:24:55
【问题描述】:

请看下面的代码。

signal = {
    "id": "p752",
}

class Trigger:
    def __init__(self, signal):
        self.id = signal['id'],
        
        print(type(signal['id']))
        print(type(self.id))
    
    def get_trigger(self):
        print(self.id)


t1 = Trigger(signal)
t1.get_trigger()

我得到的输出是

<class 'str'>
<class 'tuple'>
('p752',)

老实说,我不知道这里发生了什么。当我在构造函数中将 signal['id'] 分配给 'id' 时,为什么要更改为元组?

【问题讨论】:

  • self.id = signal['id'], 有一个尾随逗号,这使得它成为一个元组。这似乎是一个错字,所以我投票决定关闭它。
  • signal['id'], 是一个元组。 signal['id'](无逗号)不是元组。所以把self.id = signal['id'],改成self.id = signal['id']
  • 我觉得自己好蠢。谢谢。

标签: python python-3.x class dictionary constructor


【解决方案1】:
self.id = signal['id']

尾随逗号将被删除,因此它被视为一个元组

【讨论】:

  • 我觉得自己好蠢。谢谢。
猜你喜欢
  • 2018-08-17
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 2011-06-18
  • 2016-11-21
  • 2018-11-13
相关资源
最近更新 更多