首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python到底类型语言,还是弱类型语言?

我们主要的分歧就在于:Python 到底是不是类型语言?我认为,而他认为不是。 他写了一篇很长的文章《谁告诉的你们Python类型语言!站出来,保证不打你!》...一般而言,编译器有很少(合理)隐式类型转化的类型语言,有较多(过分)隐式类型转化的类型语言。...再比如,在《流畅的Python》第11章的杂谈中,也专门提到了强弱类型的分类。(它的用语“很少隐式类型转换”,算是比较严谨的,但是也错误地把 C++ 归为了类型。)...(2)假如有其它解释器令 Python 支持广泛的隐式类型转换,那 Python 还是类型语言么? 语言的标准规范就像是法律,而解释器执法者。...文章体现了作者一贯的刨根问底精神,这是“Python为什么”系列文章的风格,如果你喜欢本文,欢迎订阅关注! 相关链接 [1] 谁告诉的你们Python类型语言!站出来,保证不打你!

3K43

什么类型、弱类型、动态类型、静态类型语言

类型语言 强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就死该数据类型类型语言包括:Java、.net、Python、C++等语言。...其中Python动态语言,类型定义语言,类型安全的语言,Java静态语言,类型定义语言,也是类型安全的语言。 类型接口设计 使用 feigh 设计类型接口 ? ?...int类型,所以sum为5-5=0; 优缺点 类型语言和弱类型原因其判断的根本是是否会隐形进行语言类型转变。...类型原因在速度上可能略逊于弱类型语言,但是类型定义语带来的严谨性又避免了不必要的错误。 ?...Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

5.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

Python类型」or「弱类型」?90% 的人说不清

1 类型检查 类型检查一个验证和施加类型约束的过程,编译器或解释器通常在编译或运行阶段做类型检查。例如,你不能拿一个string类型值除以浮点数。...例如在 Python 中, f = 0.5 2.2 性能 静态类型(static): 编译阶段做更多处理,但是运行时(run-time)性能更好 动态(Dynamic): 编译阶段更高效,但是运行时的类型检查会影响到性能...3 什么类型/弱类型? 首先看下什么类型,在类型中,不管在编译时还是运行时,一旦某个类型赋值给某个变量,它会持有这个类型,并且不能同其他类型在计算某个表达式时混合计算。...例如在Python中: data = 5 # 在runtime时,被赋值为整形 data = data + "xiaoming" # error 然而,在弱类型中,它是很容易与其他类型混合计算的,比如同样一门伟大的语言...Python一门动态的(dynamic)且类型(strong)语言

3.1K30

谁告诉的你们Python类型语言!站出来,保证不打你!

真的能用隐式类型转换作为强弱类型的判断标准吗? 最近有些学员问我,Python到底类型语言,还是弱类型语言。我就直接脱口而出:Python类型语言。...没想到有一些学员给我了一些文章,有中文的,有英文的,都说Python类型语言。...如果Python真这么做了,那么能不能说Python又从类型语言变成了弱类型语言呢?如果大家认为一种语言的类型强弱可以随着时间变化的,那么我无话可说!...这就是个语义的问题,和强弱类型有毛关系。 所以吗?Java类型语言没错,但判断依据错了。 Kotlin类型和弱类型呢?答案Kotlin类型语言。...这就是为什么C++、Java、C#等编程语言的性能要高于js、Python的主要原因。 其实过度强调静态、动态、类型、弱类型,意义并不大。以为编程语言以后的发展方向静态语言动态化,弱类型类型化。

1K50

Python动态类型解释型语言原理解析

PYTHON一门动态解释性的类型定义语言:编写时无需定义变量类型;运行时变量类型强制固定;无需编译,在解释器环境直接运行。...类型和弱类型 类型和弱类型主要是站在变量类型处理的角度进行分类的。 类型指不允许隐式变量类型转换,弱类型则允许隐式类型转换。 所以,关键在于变量数据类型的转换。 什么叫隐式类型转换?...Python类型的语言。...指的是加入我们有一个整数,如果不明确地进行转换 ,不能将把它当成一个字符串,所以显然,C/C++和Java都是类型语言。 弱类型语言与类型相反。VBScript 类型的。...总结起来,Python一种动态的,类型语言。 以上就是本文的全部内容,希望对大家的学习有所帮助。

1.6K30

Typescript 静态类型初探

TypeScript 提供可选的静态类型 TypeScript 的最大亮点自然就是提供静态类型(type)。...我们可以对变量设置类型,比如你给 count 变量设置为数字类型(number),如果你从 input 元素提取 value (string 类型)赋予给 count,如果你忘记将其转换为数字,编译不会通过的...当然类型不是强求设置的,为了兼容 JavaScript,你也可以设置为 any 类型。所谓 any 类型一个特殊的类型,任何类型的的值都可以赋予给它。...如 : var msg:string = "Hello"; msg = 11; console.log(msg); 上面的代码第2行 msg 变量初始化时字符串类型,当它被指定为数值类型会报错。...有时候,我们会看到一个变量在执行的过程中变成各种各样的类型,一会是字符串,一会是对象,非常不好预测,尤其有复杂条件判断的时候。

15410

通俗的方式理解动态类型,静态类型类型,弱类型

引言 今天和一个朋友讨论 C++ 类型还是弱类型的时候,他告诉我 C++ 类型的,他和我说因为 C++ 在写的时候需要 int,float 等等关键字去定义变量,因此 C++ 类型的,我告诉他...我又尝试去问了另外一个同学 Python 类型还是弱类型的时候,得到的竟然类型,就因为定义变量没有 int,float!...比如: 在 Python 中进行 '666' / 2 你会得到一个类型错误,这是因为类型语言中不允许隐式转换的,而在 JavaScript 中进行 '666' / 2 你会得到整数 333,这是因为在执行运算的时候字符串...666' / 3 你会在运行时得到一个 TypeError 错误,相当于运行时排除了 untrapped error,因此 Python 动态类型类型语言。...类型的。

2.2K40

编程语言的弱类型类型、动态类型、静态类型的解释

编程语言的弱类型类型、动态类型、静态类型的解释 一、弱类型类型的区别 ​ 弱类型语言和类型的语言的区分点,在于 是否支持隐形类型转化 越支持隐式类型转化,越是弱语言类型; 越不支持隐式类型转化...这种类型转换由编程语言或数据库系统自动执行的,目的使表达式能够顺利地进行计算或赋值。...要注意的类型和弱类型并没有严格意义上的定义 像是 C++,允许某些类型的隐式转换的同时却又对类型要求严厉,不能将一个指针随意地转换为一个整数。我们很难定义它究竟是弱类型语言还是类型语言。...二、动态类型和静态类型的区别 很多初学者很容易把这两个概念和弱类型类型的概念混淆,其实这是两个完全不同方向上的概念 静态类型语言: 指在编译时变量的数据类型必须确定的语言,静态类型语言要求在使用变量之前必须声明该变量的数据类型...动态类型语言: 在运行时确定数据类型的语言。变量使用之前不需要类型声明,如python中,变量a=1,则a的类型就是整型,若a=”abc”,a的类型就是字符串。

27310

编程语言傻傻分不清:弱类型类型、动态类型、静态类型

举例:若定义了一个整型变量a,若不进行显示转换,不能将a当作字符串类型处理 类型语言指需要进行变量/对象类型声明的语言,一般情况下需要编译执行。...举例说明 Python动态语言,类型定义语言(类型安全的语言); VBScript动态语言,类型定义语言(类型不安全的语言); JAVA静态语言,类型定义语言(类型安全的语言) ---...误区 大家觉得C语言要写int a, int b之类的,Python不用写(可以直接写a, b),所以C静态,Python动态。这么理解不够准确的。...和Haskell 4.下面些例子 无类型: 汇编 弱类型、静态类型 : C/C++ 弱类型、动态类型检查: Perl/PHP 类型、静态类型检查 :Java/C# 类型、动态类型检查 :Python...前者认为C类型,后者认为C类型,所以冲突了。那么,大神们认为哪种更准确?

6.7K31

C++11类型枚举

1.传统枚举类型的缺陷 枚举类型C/C++中用户自定义的构造类型,它是由用户定义的若干枚举常量的集合。枚举值对应整型数值,默认从0开始。比如定义一个描述性别的枚举类型。...C++标准规定C++枚举所基于的“基础类型由编译器来具体实现,这会导致枚举类型成员的基本类型存在不确定性问题,尤其符号性问题,即。...比如比如Enumeration::VAL4==10;会触发编译错误; (3)可以指定底层类型类型枚举默认的底层类型int,但也可以显示地指定底层类型。...(2)由于类型枚举类型作用域的,故匿名的enum class可能什么都做不了,如下代码会报编译错误: enum class{General,Light,Medium,Heavy}weapon; int...---- 参考文献 [1]深入理解C++11[M].5.1类型枚举.P155-P161 [1]C++11类型枚举——枚举类

3.1K20

类型类型、动态类型、静态类型语言的区别是什么

有了上面的概念,再讨论、弱类型,静态、动态类型 、弱类型 类型strongly typed: 如果一种语言的所有程序都是well behaved——即不可能出现forbidden behaviors...误区 大家觉得C语言要写int a, int b之类的,Python不用写(可以直接写a, b),所以C静态,Python动态。这么理解不够准确的。...譬如Ocaml静态类型的,但是也可以不用明确地写出来。。...Ocaml静态隐式类型 静态类型可以分为两种:如果类型语言语法的一部分,在explicitly typed显式类型; 如果类型通过编译时推导,implicity typed隐式类型, 比如ML和...Haskell 4.下面些例子 无类型: 汇编 弱类型、静态类型 : C/C++ 弱类型、动态类型检查: Perl/PHP 类型、静态类型检查 :Java/C# 类型、动态类型检查 :Python

1.5K30

Python 中什么鸭子类型

我们将讨论 Python 编程中鸭子类型的确切含义。 Python 遵循的 EAFP (请求原谅比请求允许更容易)而不是 LBLY (三思而后行)的哲学。EAFP 与“鸭子类型”风格有些联系。...动态与静态类型 使用鸭式打字的主要原因是为了在 Python 编程中提供动态打字的支持。...Python 解释器接受同一变量数据类型的变化。这是一种动态打字行为。 许多其他编程语言,如 Java、swift 都是静态类型。我们需要用数据类型声明变量。...鸭分型的概念 前面我们已经讨论过 Python 一种动态类型语言。但是,我们可以将动态方法用于自定义数据类型。让我们理解下面的例子。...鸭子类型如何支持 EAFP 鸭子类型最适合 EAFP 的风格,因为我们不需要关注对象的“打字”。我们只需要照顾它的行为和功力。让我们看看下面的陈述。

26140

java学习引用类型引用

在Java中,引用(Strong Reference)最常见、默认的引用类型。它是一种正常的对象引用,如果一个对象具有引用与之关联,那么即使内存紧张,垃圾回收器也不会回收该对象。...下面使用引用的示例:public class StrongReferenceExample { public static void main(String[] args) {...引用可以避免对象被提前回收,但也可能导致内存泄漏问题。需要注意的,当一个对象不再被引用时,即没有任何引用指向它时,它将成为垃圾回收的候选对象。...引用是Java中最常用的引用类型,大多数情况下,我们使用的都是引用。...引用类型只有显式地设置o为null,或超出对象的生命周期范围(如非全局变量),则gc认为该对象不存在引用,这时就可以回收这个对象。

12620
领券