强弱定义有学术上的,如果按照题主提到的含义“是否存在隐式转换”来看待的话,其实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. Blender中的多平面动画学习教程
  2. web报表移动端如何进行移动设备绑定与撤销
  3. Win64 驱动内核编程-33.枚举与删除对象回调
  4. vue调用接口获取后台数据_Vuex 存储||获取后台接口数据
  5. 9、ShardingSphere 之 Sharding-Proxy 读写分离
  6. 深度学习搞CV?图像数据不足咋办?看这里!
  7. 全面解析python类的绑定方法与非绑定方法(转载+自己的消化与理解)
  8. jpa和hibernate_JPA和Hibernate级联类型的初学者指南
  9. java获取linux下面所有线程,获取Linux中Java线程的线程ID
  10. 设计数据密集型应用-C5-主从架构及同步延迟问题
  11. k8s极简史:K8s多集群技术发展的历史、现状与未来
  12. MATLAB转化彩色图片为灰度图片命令行窗口代码:
  13. C语言学习笔记---断言函数assert()
  14. 面试中的字符串问题 (1)
  15. mac appium环境搭建
  16. 主成分分析二级指标权重_确定权重方法之一:主成分分析
  17. 改进YOLOv7系列:21.添加ShuffleAttention注意力机制
  18. 扫描件如何转换成pdf及word文档?
  19. DRM GEM 驱动程序开发(dumb)
  20. UUID 通用唯一识别码(Universally Unique Identifier)介绍

热门文章

  1. wex5 教程 前端UI编译原理与记事本编辑
  2. Servlet Cookie处理
  3. 两列高度自适应(转)
  4. [使用心得]maven2之m2eclipse使用手册之六使用Maven2插件创建一个简单的SSH2项目之jetty篇(一)...
  5. 编译问题收集、汇总与积累
  6. 深入Managed DirectX9(四)
  7. 学python语言用什么软件-对于自学python的初学者来说,应该使用什么编辑工具?...
  8. python语言中文社区-python numpy看这一篇就够了-Go语言中文社区
  9. 手机怎么下载python并安装-Python入门【1】Python下载安装,这几步你要了解
  10. 英语和数学不好可以学python-Day2 怎么学 Python?