强弱定义有学术上的,如果按照题主提到的含义"是否存在隐式转换”来看待的话,其实py和C还是有差别的,不过这个差别得去实现层面去看了,具体说就是,类型的转换是语言本身决定的,还是类型自己决定的

譬如说,支持int和float的混合运算,C就是语言本身决定的,编译器看到你用int和float做加法,就根据规定把int转float,然后做float的加法,这是一种弱类型特性

但是py中并不是这样的,py是动态类型语言,编译器看到a+b,并不知道a和b是什么类型,其实也不需要知道,因为只有运行时才知道它们是什么类型(严格说,是它们"引用的对象”是什么类型,因为py的变量是无所谓类型的),语言上的规定很宽松,就一句话:a+b等同于a.__add__(b),也就是说加法运算是对象的一个方法,由对象自己决定(实际情况稍复杂一点,也可以等同于b.__radd__(a),即正向走不通走反向),所以并不是"隐式类型转换”,而是"a类型能支持以b的类型为参数的加法方法”;而像not转bool,其实也是调用方法,任何对象转bool都是由其本身定义的方法决定,只不过过程更复杂,会先看有没有__nonzero__方法,如果没有就看有没有__len__……,总之是类型自己决定行为的,当然内建类型的行为,语言规范也会定义到,但依然是runtime实现而非编译器介入

所以上面说C有"弱类型特性”,弱类型是一种特性,一个语言也可以同时存在强弱两种特性,用这个判断语言本身其实只是一种大略的说法了,《编译原理》一书甚至有一节论述中认为java也是动态类型语言呢,因为所有对象都可以用Object引用

python是什么类型的语言-为什么说 Python 是强类型语言?相关推荐

  1. 概念区别 【编译型语言与解释型语言、动态类型语言与静态类型语言、强类型语言与弱类型语言】

    概念区别 [编译型语言与解释型语言.动态类型语言与静态类型语言.强类型语言与弱类型语言] 文章目录 一.编译型语言与解释型语言 二.动态类型语言与静态类型语言 三.强类型语言与弱类型语言 总结 一.编 ...

  2. python里两个等号代表什么_Python 到底是强类型语言,还是弱类型语言?

    以下文章来源于 Python 猫 ,作者豌豆花下猫 作者 | 豌豆花下猫 来源 | Python 猫 前言 我在上一篇文章中分析了为什么 Python 没有 void 类型的话题,在文章发布后,有读者 ...

  3. python限制输入类型_《计算机二级Python语言程序设计考试》第3章:基本数据类型...

    考纲考点数字类型:整数类型.浮点数类型和复数类型 数字类型的运算:数值运算操作符.数值运算函数 字符串类型及格式化:索引.切片.基本的format()格式化方法 字符串类型的操作:字符串操作符.处理函 ...

  4. python常量基本类型有哪些_【Python③】python基本数据类型,变量和常量

    基本数据类型 Python中,能直接处理的数据类型有以下几种: 整数 Python可以处理任意大小的整数,包括负整数,程序中的写法和数学上的一样,例如:6,-666,8888-- 计算机使用二进制,所 ...

  5. python属于什么类型软件_c语言和python区别是什么

    c语言是编译型语言,经过编译后再运行,执行速度快,不能跨平台,一般用于操作系统,驱动等底层开发.Python大致上可以理解为解释型语言,Python是可以跨平台的,Python高度集成适合于软件的快速 ...

  6. python 通用数据库类型_Python开发基础之Python常用的数据类型

    博文大纲 一.Python介绍 二.Python的变量 三.Python常用的数据类型 1.数字 2.字符串 3.元组 4.列表 5.字典 一.Python介绍 Python是一种动态解释型的编程语言 ...

  7. python 声明变量类型_每日一课 | Python 检查变量的类型

    在Python中,我们可以使用type()来检查变量的类型. num = "3.141592653589793238"print(type(num)) pi = float(num ...

  8. python内置数据类型与特点_初学Python之内置数据类型一

    Python中一些基本数据类型: Booleans[布尔型] 或为 True[真] 或为 False[假]. Numbers[数值型] 可以是 Integers[整数](1 和 2).Floats[浮 ...

  9. python属于什么类型的选修课_对Python选修课的期望

    作为一个之前完全没有接触过任何计算机语言的人我对于Python完完全全是个小白,那么我就以一个菜鸟的角度来谈谈我对这门选修课的期望吧.                                  ...

  10. python判断对象类型_如何查看一个Python对象的类型

    怎么查看一个对象的类型 在Python中有两种类型判断函数,type()和isinstance(). 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判 ...

最新文章

  1. python接口自动化参数化_Python读取txt文件数据的方法(用于接口自动化参数化数据)...
  2. Handlebars的基本用法
  3. python爬虫实例-python爬虫实例大全
  4. CF1096E The Top Scorer
  5. java.lang.Void 解析与使用
  6. DoD模型与OSI模型的关系及其协议对应关系
  7. 3.type关键字.rs
  8. opencv android
  9. 09. 利用destructors避免泄漏资源
  10. Fiddler中文版汉化插件 0.1
  11. iozone使用简介
  12. 科技热点周刊|马斯克卖掉特斯拉 10% 股票;Facebook 停用面部识别系统;微软拥抱 Metaverse;雅虎退出中国
  13. 计算机网络ip地址分类的范围,ip地址分类及范围_ip地址由什么组成
  14. 从视频马赛克看编码量化参数对流控的作用
  15. 启发式算法(heuristic algorithm)中的启发式(heuristic)到底是什么意思?
  16. 腾讯邮箱比阿里邮箱好,腾讯邮箱还是阿里邮箱?
  17. 砸盘、销号、解散社群,Merlin Lab“跑路三连”暴露了DeFi哪些问题?
  18. 矩阵快速幂求斐波那契数列(初学整理)
  19. 如何用python找文献_如何高效查找文献、紧跟研究领域热点和前沿?
  20. 【SAP ABAP学习资料】SQL查询分析器——程序代码

热门文章

  1. (数组) leetcode 189. Rotate Array
  2. MFC Bitmap::FromBITMAPINFO返回空问题
  3. creating server tcp listening socket 127.0.0.1:6379: bind No error
  4. 【转载】深入理解Java内存模型——final
  5. 使用webstorm操作git
  6. 此C语言功能---A
  7. Fibonacci斐波拉契数列----------动态规划DP
  8. .NET在抹黑代码中输入JS提示语句(背景不会变白)
  9. JSK-10926 各位数字之和的和【入门】
  10. 同余定理在算法求解中的应用