【发布时间】:2014-04-26 17:20:35
【问题描述】:
我正在编写的程序中遇到了一个非常奇怪的问题。我正在尝试在字典中查找对象,如果对象中的名称字符串与我要查找的名称匹配,那么我将一条消息附加到空列表中。之后,我希望有一个单个字符串的列表。我实际上得到的结果让我感到非常惊讶,我无法解释它的一生。
clients = {}
class Client:
my_fullname = ""
mymessage = []
def send_message(recipient, message, clients):
for guy in clients:
if clients[guy].my_fullname == recipient:
print(clients[guy].my_fullname)
print(clients[guy].mymessage)
clients[guy].mymessage.append(message)
return
SCOTT = Client()
SCOTT.my_fullname = "SCOTT"
KAT = Client()
KAT.my_fullname = "KAT"
clients["SCOTT"] = SCOTT
clients["KAT"] = KAT
print(clients["KAT"].mymessage)
send_message("KAT", "goodbye", clients)
print(clients["KAT"].mymessage)
print(clients["SCOTT"].mymessage)
send_message("SCOTT", "what's up", clients)
print(clients["SCOTT"].mymessage)
这是我运行它得到的输出。我在 Python 2.7.5 上。我尝试将客户端作为参数传入,尝试将其作为全局而不传入,并且尝试将其作为全局而不传入但在开头声明“全局客户端”的功能,无论如何我都会得到相同的结果。请帮忙?
[]
KAT
[]
['goodbye']
['goodbye']
SCOTT
['goodbye']
['goodbye', "what's up"]
【问题讨论】:
-
你有一些完全错误的空白格式,修复它,你可能会改善你的反应。
标签: python string dictionary append