收到字符串时,请确保它保持不变。假设您将Foo
使用字符串参数构造一个如下所示的字符串,然后修改该字符串;那么Foo
的名称就会突然更改:
class Foo(object):
def __init__(self, name):
self.name = name
name = "Hello"
foo = Foo(name)
name[0] = "J"
使用可变的字符串,您必须一直制作副本,以防止发生不良情况。
它还使单个字符与长度为1的字符串没有区别的便利性,因此所有字符串html" target="_blank">运算符也适用于字符。
最后,如果字符串不是一成不变的,则您不能可靠地将它们用作a中的键dict
,因为它们的哈希值可能会突然改变。
对于使用不可变字符串进行编程,只需习惯像对待数字一样对待它们:将其视为 值 ,而不是作为对象。改变的第一个字母name
是
name = "J" + name[1:]
问题内容: 我正在使用以下内容从文本文件中读取一行: 并使用telnetlib.write命令将其输出到16个字符的LCD显示屏。如果读取的行长于16个字符,我想将其分解为16个字符长的字符串,并在一定的延迟(例如10秒)后将每个部分推出,一旦完成,代码应移至下一行输入文件,然后继续。 我曾尝试搜索各种解决方案并阅读itertools等。但是,我对Python的理解不足以使所有事情变得复杂,而如果
问题内容: 我们通常使用关键字创建对象,例如: 字符串是对象,但是我们不能用来创建它们: 为什么是这样?我可以用做一个琴弦吗? 问题答案: 除了已经说过的内容外,Java中的字符串文字(即像Java 一样但不喜欢的字符串)是经过内插的-这意味着,每次引用时,你都将引用一个String实例,而不是一个新实例。每一次。因此,你将拥有: 但是如果你有 那么就有可能 (如果有人需要提醒,请务必使用比较字符
Python中的字符串是不可变的,这意味着该值不能更改。我正在测试该场景,但看起来原始字符串已被修改。我只是想理解这个概念
本文向大家介绍为什么字符串对象在Java中是不可变的?,包括了为什么字符串对象在Java中是不可变的?的使用技巧和注意事项,需要的朋友参考一下 通常,字符串用于表示重要细节,例如数据库连接URL,用户名密码等。字符串的不变性有助于使这些细节保持不变。 类似地,在加载类时,将String用作参数。那时,更改字符串可能会导致加载错误的类。 如果不可变,则变量(字符串)自动为线程安全的。
Python中的字符串是不可变的,这意味着该值不能更改。但是,在以下示例中,当附加到字符串时,由于id保持不变,看起来原始字符串内存被修改了: 相反,在以下示例中,id更改: