- 让Python字符串不可变的设计原因是什么?它如何让编程变得更容易?
- 我习惯了可变字符串,比如 C 中的字符串。如果没有可变字符串,我该如何编程呢?有没有最佳实践?
当您收到字符串时,您将确保它保持不变。假设您要构造一个Foo
如下带有字符串参数,然后修改字符串;那么Foo
的名字会突然改变:
class Foo(object):
def __init__(self, name):
self.name = name
name = "Hello"
foo = Foo(name)
name[0] = "J"
对于可变字符串,您必须始终进行复制以防止发生不好的事情。
它还提供了便利,单个字符与长度为 1 的字符串没有什么不同,因此所有字符串运算符也适用于字符。
最后,如果字符串不是不可变的,您就无法可靠地将它们用作dict
,因为它们的哈希值可能会突然改变。
至于使用不可变字符串进行编程,只需习惯于像对待数字一样对待它们:values,不作为对象。更改第一个字母name
将会
name = "J" + name[1:]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)