一个变量的打印类型只返回指向数据的类型
i = [5,6,7,8]
j = i
print(type(j))<class 'list'>j引用可变类型。所以
j[0] = 3
print(i)
print(j)[3, 6, 7, 8]
[3, 6, 7, 8]我想要一个函数,返回true表示j,false返回i。如果它是内置的或者任何人都可以写的话,我们会很感激的。
发布于 2022-11-22 04:42:12
Python中没有“指针”,就像C++ (或类似语言)中的指针一样。Python中唯一的区别是可变的还是不可变的。但所有变量都只是对对象的引用。
不可变类型的变量指的是不能修改的值,只能替换。int是一个不可变类型的示例。
当您运行代码时,您将5分配给i,然后将i的值分配给j,这样j现在也有了5值,但是由于这些都是不可变的值,所以只能更改两个变量的整个值,这不会影响另一个变量的值。
具有可变类型的变量具有可以修改的值。list是一个可变类型的示例。
当你运行这个:
xs = [1, 2, 3]
ys = xs
xs[0] = 999最后一条语句修改两个变量的值,因为xs值的列表与分配给ys的列表相同,最终指令修改了该值。
不可变类型,包括数字、字符串和元组以及其他一些简单类型。可变类型包括列表、字典和大多数其他更复杂的类。
另外,例如,请看一看以下内容:
a = 1
b = 1
c = b + 1
d = 2
print(id(a), id(b), id(c), id(d))这将打印四个数字,但请注意前两个数字将如何相同(因为它们都引用1)和后两个数字也是相同的(因为它们都是指2)。
话虽如此,如果您想测试某件东西是否是可变的,则没有简单的方法可以这样做--但要这样做的一个常见原因是,您想测试某件东西是否是可接受的,而您可以测试:
s = 'test'
print(s.__hash__ is None) # False
xs = [1, 2, 3]
print(xs.__hash__ is None) # Truehttps://stackoverflow.com/questions/74527549
复制相似问题