繁体   English   中英

Python访问字典并更改值-错误

[英]Python Accessing Dictionary and changing values - Error

我似乎无法弄清楚,而且,这让我发疯了。 假设我有以下课程:

class Test:

 connect = {'Message': None}

 def connect(self):
  if not self.connect['Message']:
     print "Message is not set"
  else:
     print "Message is active and set!"

 def connectMSG(self, theMessage):
     self.connect['Message'] = theMessage

以下看起来不错。 我似乎看不到错误,但是得到以下信息:

self.connect ['Message'] = The Message TypeError:'instancemethod'对象不支持项目分配

有什么想法吗?

您会覆盖具有相同名称的方法所connect的属性。 重命名您的属性。

下一个问题是,如果您确实要拥有类属性或实例属性。 如果要使用实例属性,请在__init__方法中对其进行定义。

您已经定义了一个方法和一个具有相同名称connect的变量。 因此,您已用您的方法覆盖了词典,更改其中之一的名称。

因此,最难的是首先创建名称为connect的字典,然后再使用方法覆盖它。 当您尝试访问字典时,得到的是一个错误,告诉您connect方法不支持该操作(这不是字典)

更正为:

class Connection:
   def __init__(self):
       self.connect = {'Message': None}              #moved here

   def Check(self):                                  #renamed
       if not self.connect['Message']:
           print "Message is not set."
       else:
           print "Message is active and set!"

   def Connect(self, theMessage):                    #renamed
       self.connect['Message'] = theMessage

cnt = Connection()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM