首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python整数是引用类型吗?

Python整数是引用类型吗?
EN

Stack Overflow用户
提问于 2020-09-10 13:34:42
回答 1查看 663关注 0票数 0

我们都知道Python中的列表是引用类型,即包含列表的变量并不直接保存列表,而是保存对列表的引用。

我们都知道Python中的所有东西都是一个对象。

所以我想到的问题是,整数也是Python中的对象,所以持有整数的变量也会包含对整数的引用;那么为什么只将列表归类为引用类型呢?

Python中的不是整数,而是引用类型,这是因为在Python?中,一切都是对象。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-10 14:03:49

这些概念在Python中并不真正适用。根据我的经验,“引用类型”和“值类型”主要用于.NET语言,例如C#,它们有特定的含义--引用类型的变量存储对对象的引用,而值类型的变量直接存储对象的值。您无法获得存储在变量中的对象的引用(尽管您可以创建该值的“装箱”副本并获得对该框的引用)。在其他语言中,这些术语可以通过类推方式使用--但在Java中,所有类都是.NET所认为的“引用类型”,并且只有原语在.NET中表现为“值类型”,因此这些术语并不是真正必要的。让我们回到Python。

如果我们使用.NET的意思,那么是的,所有的a类型实际上都是“引用”类型,因为每个变量都是对对象的引用*,执行a = b将使a引用与b相同的对象。但是,关于“引用类型”和“值类型”的问题是,当一个对象是不可变的时,它是否属于引用类型或值类型不再重要。在区分重要的地方,您不能做一件大事--不能有两个对同一个对象的引用,可以通过其中一个来修改对象,然后当其他对象发生变化时会感到惊讶!

这是一种长篇大论的说法,当人们在Python中调用整数“值类型”时,他们可能会从C#或可能Java的角度来考虑它们,并注意到它们的行为与C#中的值类型非常相似,或者原语在Java中的行为也是如此,因为它们是这样的!但那真的是因为它们是不可变的,比其他任何东西都重要。

*在这里,我使用的“引用”比在C#中找到的更一般意义上的引用。一般意义上是指定特定对象的某种句柄、地址或标识符,这样我们就可以拥有对单个对象的许多“引用”。“引用”和“指针”都是一般性术语,在某些语言中可能有更具体的含义。例如,C#引用是一个与C++引用非常相似的概念,但与C++引用完全不同。在某些语言中,“指针”是可以用算术操作的数字内存地址,而在其他语言中,“指针”与我描述的“引用”的一般含义是无法区分的。我发现“引用”一词对于描述Python中的内容来说是最中立和最有用的,但是在比较一种语言和另一种语言时,要小心使用所有这些术语。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63830852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档