首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的强制转换和强制转换有什么区别?

Python中的强制转换和强制转换有什么区别?
EN

Stack Overflow用户
提问于 2009-10-22 00:51:30
回答 2查看 32.6K关注 0票数 34

在Python文档和邮件列表中,我看到值有时是“强制转换”的,有时是“强制转换”的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-22 00:55:58

我认为Python不应该使用“强制转换”;只有类型转换,而没有强制转换(在C意义上)。例如,通过int(o)完成类型转换,其中对象o被转换为整数(实际上,整数对象是由o构造的)。强制发生在二元操作的情况下:如果使用x+y,并且x和y具有不同的类型,则在执行操作之前,它们将被强制为单一类型。在2.x中,一个特殊的方法__coerce__允许对象控制它们的强制。

票数 32
EN

Stack Overflow用户

发布于 2009-10-22 01:11:03

Cast是显式的。强制是隐含的。

Python中的示例如下:

代码语言:javascript
复制
cast(2, POINTER(c_float)) #cast
1.0 + 2  #coerce 
1.0 + float(2) #conversion

Cast真的只在C FFI中出现。在C或Java中通常被称为强制转换的东西在python中被称为转换,尽管它通常被称为强制转换,因为它与其他语言相似。在我使用过的几乎所有语言中(包括python),Coercion都是隐式的类型转换。

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

https://stackoverflow.com/questions/1602122

复制
相关文章

相似问题

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