【发布时间】: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