python中无论输入什么都会以字符串方式保存吗,python字符编码用什么储存
Python通过元模型在内部存储字符串。元模式是一种减少存储空间的优化方法。两个内容相同的字符串指向同一个对象,这正是元共享模式所做的。
Python内部存储字符串采用Flyweight模式。
(推荐教程:Python入门)
元模式是一种减少存储空间的优化方法。我们知道两个内容相同的字符串实际上指向同一个对象,这正是元共享模式所做的。
那么为什么可以用这种模式呢?学过python的同学应该知道,字符串在python中是不可变类型,就像tuple一样。正是因为这个原因,字符串可以采用元共享模式。
下面我们来详细分析一下:
用过python的人应该对==和is比较熟悉,但我想在这里介绍一下。
==用于推断两个事物是否相等,例如:
a=10 .
b=10
print(a==b);输出为真;
再看另一个例子:
a=[1,2,3];
b=[1,2,3];
c=[1,2,4];
print(a==b);
print(a==c);输出分别为真和假。
让我们看看是。是用来推断身份,而不是身份。
看一下下面的例子:
x=[1,2,3];
y=[1,2,3];
打印(xisy);输出为假;
仅:
x=[1,2];
y=x;
打印(xisy);输出为真;
从上面的例子可以看出==和is的区别。
那么问题来了,如果我们把比较改成字符串,结果会不会出乎意料?请看下面的例子:
x="欢";
y=x;
print(x==y);
打印(xisy);输出是:
真实的
false现在看看下面的例子:
x="欢";
y="欢";
print(x==y);
打印(xisy);输出是:
真实的
真实的
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。