字典中的字符串列表被错误地分配了一个值

处理它

我正在编写的程序中遇到一个非常奇怪的问题。我正在尝试在字典中找到对象,并且如果对象中的名称字符串与我要查找的名称匹配,那么我会在空列表中附加一条消息。之后,我希望有一个单个字符串的列表。尽管我实际上得到的是令我感到惊讶的东西,但我无法一生对其进行解释。

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"]
金德尔

您的问题是您mymessage是一个类属性,因此它在该类的所有实例之间共享。通过在__init__方法中进行分配,使其成为实例属性当您使用它时,为什么不还要输入全名呢?

class Client:           
    def __init__(self, fullname):
        self.my_fullname = fullname
        self.mymessage   = []

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

春季:将字符串列表的所有值注入一个bean

来自分类Dev

无法替换字符串列表中的最后一个元素

来自分类Dev

在字符串列表中的每个字母之间放置一个符号

来自分类Dev

ProcessBuilder从字符串列表中执行一个命令,但不执行下一个命令。

来自分类Dev

有条件地串联一个字符串列表

来自分类Dev

一个Bash脚本,用于检查以逗号分隔的字符串列表中是否存在字符串

来自分类Dev

在Python的字符串列表中创建一个整数(和元组)列表

来自分类Dev

比较字符串列表和另一个列表中的对象属性

来自分类Dev

从netLogo中的字符串列表/字符串数组中选择一个随机元素

来自分类Dev

检查是否存在至少一个字符串列表中

来自分类Dev

如何寻找另一个字符串中的字符串列表?

来自分类Dev

用python中的字符串列表替换一个字符串列表

来自分类Dev

如何知道一个字符串是否属于python中字符串列表的组合?

来自分类Dev

Python-搜索字符串列表以获取子字符串列表,并从另一个列返回最大值

来自分类Dev

按R中字符串的最后一个数字排序字符串列表

来自分类Dev

如何有效地将字典中的字符串列表与Python中的另一个字典列表进行比较?

来自分类Dev

如何从不包含一个变量的字符串列表中创建一个新的字符串列表?

来自分类Dev

将字符串列表存储在一个属性中

来自分类Dev

用替换字符串列表中的下一个项目替换匹配项

来自分类Dev

从Flutter中的另一个文件中调用字符串列表

来自分类Dev

将字符串列表中的第一个元素转换为整数

来自分类Dev

根据另一个列表中的unicode代码(ascii值)替换字符串列表中的字符串前缀

来自分类Dev

搜索字符串列表以仅返回与Linq中的另一个输入字符串列表匹配的那些字符串

来自分类Dev

查找字符串列表中的字符串是否在Esper中的另一个字符串列表中

来自分类Dev

从Python的字符串列表中创建一个整数(和元组)列表

来自分类Dev

给定一个字符串列表,如何检查这些字符串是否在列表中?

来自分类Dev

遍历字符串列表,从“一个”字符串开始,直到 Java 中的“另一个”字符串

来自分类Dev

是否有一个模块可以计算 Python 中字符串列表的出现次数?

来自分类Dev

Ocaml - 对字符串列表中的每个字符串应用一个函数并返回一个新的字符串列表

Related 相关文章

  1. 1

    春季:将字符串列表的所有值注入一个bean

  2. 2

    无法替换字符串列表中的最后一个元素

  3. 3

    在字符串列表中的每个字母之间放置一个符号

  4. 4

    ProcessBuilder从字符串列表中执行一个命令,但不执行下一个命令。

  5. 5

    有条件地串联一个字符串列表

  6. 6

    一个Bash脚本,用于检查以逗号分隔的字符串列表中是否存在字符串

  7. 7

    在Python的字符串列表中创建一个整数(和元组)列表

  8. 8

    比较字符串列表和另一个列表中的对象属性

  9. 9

    从netLogo中的字符串列表/字符串数组中选择一个随机元素

  10. 10

    检查是否存在至少一个字符串列表中

  11. 11

    如何寻找另一个字符串中的字符串列表?

  12. 12

    用python中的字符串列表替换一个字符串列表

  13. 13

    如何知道一个字符串是否属于python中字符串列表的组合?

  14. 14

    Python-搜索字符串列表以获取子字符串列表,并从另一个列返回最大值

  15. 15

    按R中字符串的最后一个数字排序字符串列表

  16. 16

    如何有效地将字典中的字符串列表与Python中的另一个字典列表进行比较?

  17. 17

    如何从不包含一个变量的字符串列表中创建一个新的字符串列表?

  18. 18

    将字符串列表存储在一个属性中

  19. 19

    用替换字符串列表中的下一个项目替换匹配项

  20. 20

    从Flutter中的另一个文件中调用字符串列表

  21. 21

    将字符串列表中的第一个元素转换为整数

  22. 22

    根据另一个列表中的unicode代码(ascii值)替换字符串列表中的字符串前缀

  23. 23

    搜索字符串列表以仅返回与Linq中的另一个输入字符串列表匹配的那些字符串

  24. 24

    查找字符串列表中的字符串是否在Esper中的另一个字符串列表中

  25. 25

    从Python的字符串列表中创建一个整数(和元组)列表

  26. 26

    给定一个字符串列表,如何检查这些字符串是否在列表中?

  27. 27

    遍历字符串列表,从“一个”字符串开始,直到 Java 中的“另一个”字符串

  28. 28

    是否有一个模块可以计算 Python 中字符串列表的出现次数?

  29. 29

    Ocaml - 对字符串列表中的每个字符串应用一个函数并返回一个新的字符串列表

热门标签

归档