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

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

例如在 Python 中, f = 0.5 2.2 性能 静态类型(static): 编译阶段做更多处理,但是运行时(run-time)性能更好 动态(Dynamic): 编译阶段更高效,但是运行时的类型检查会影响到性能...3 什么是类型/弱类型? 首先看下什么是类型,在类型中,不管在编译时还是运行时,一旦某个类型赋值给某个变量,它会持有这个类型,并且不能同其他类型在计算某个表达式时混合计算。...例如在Python中: data = 5 # 在runtime时,被赋值为整形 data = data + "xiaoming" # error 然而,在弱类型中,它是很容易与其他类型混合计算的,比如同样一门伟大的语言...在静态类型语言中,类型检查发生在编译阶段;动态类型语言,类型检查发生在运行阶段。 类型语言有更强的类型检查机制,表达式计算中会做严格的类型检查;而弱类型语言允许各种变量类型间做一些运算。...Python是一门动态的(dynamic)且类型(strong)语言

3.3K30

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

我们主要的分歧就在于:Python 到底是不是类型语言?我认为是,而他认为不是。 他写了一篇很长的文章《谁告诉的你们Python类型语言!站出来,保证不打你!》...例如,以 Python 为例,社区的主流看法认为它是类型语言,而判断的标准也是看隐式类型转换。...4 个答案,为 Python 的“动态类型”定性: ?...4、Python 是不是类型语言? 关于“Python 是否属于类型”话题,在主流观点之外,还存在着不少误解的看法。 一方面的原因有些人混用了强弱类型与动静类型,这有历史的原因,前面已经分析了。...(2)假如有其它解释器令 Python 支持广泛的隐式类型转换,那 Python 还是类型语言么? 语言的标准规范就像是法律,而解释器是执法者。

3.2K43
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

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

    6.7K30

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

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

    1.8K30

    Typescript 静态类型初探

    TypeScript 提供可选的静态类型 TypeScript 的最大亮点自然就是提供静态类型(type)。...我们可以对变量设置类型,比如你给 count 变量设置为数字类型(number),如果你从 input 元素提取 value (string 类型)赋予给 count,如果你忘记将其转换为数字,编译是不会通过的...当然类型不是强求设置的,为了兼容 JavaScript,你也可以设置为 any 类型。所谓 any 类型是一个特殊的类型,任何类型的的值都可以赋予给它。...如 : var msg:string = "Hello"; msg = 11; console.log(msg); 上面的代码第2行 msg 变量初始化时是字符串类型,当它被指定为数值类型是会报错。...TypeScript 声明的变量一旦指定类型,它的类型就再也不能修改。这样变量就具有可预测性。 JavaScript 的变量可以赋予任何类型的值。

    17210

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

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

    2.3K40

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

    例如:ECMAScript(JavaScript)、Ruby、Python、VBScript、php Python和Ruby就是典型动态类型语言,其他各种脚本语言如VBScript也多少属于动态类型语言...举例说明 Python是动态语言,是类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是类型定义语言(类型安全的语言) ---...有了上面的概念,再讨论、弱类型,静态、动态类型 、弱类型 类型strongly typed: 如果一种语言的所有程序都是well behaved——即不可能出现forbidden behaviors...误区 大家觉得C语言要写int a, int b之类的,Python不用写(可以直接写a, b),所以C是静态,Python是动态。这么理解是不够准确的。...和Haskell 4.下面是些例子 无类型: 汇编 弱类型、静态类型 : C/C++ 弱类型、动态类型检查: Perl/PHP 类型、静态类型检查 :Java/C# 类型、动态类型检查 :Python

    8.2K31

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

    编程语言的弱类型类型、动态类型、静态类型的解释 一、弱类型类型的区别 ​ 弱类型语言和类型的语言的区分点,在于 是否支持隐形类型转化 越支持隐式类型转化,越是弱语言类型; 越不支持隐式类型转化...,越是类型。...要注意的是:类型和弱类型并没有严格意义上的定义 像是 C++,允许某些类型的隐式转换的同时却又对类型要求严厉,不能将一个指针随意地转换为一个整数。我们很难定义它究竟是弱类型语言还是类型语言。...类型和弱类型的存在只是为了让我们更好的理解语言特性;如类型语言在类型安全性上有更严格的要求,而弱类型语言在类型安全性上通常更为放松。...动态类型语言: 是在运行时确定数据类型的语言。变量使用之前不需要类型声明,如python中,变量a=1,则a的类型就是整型,若a=”abc”,a的类型就是字符串。

    50610

    C++11类型枚举

    为了解决以上传统枚举类型的缺陷,C++11引入了类型枚举解决了这些问题。 2.类型枚举 非强作用域类型,允许隐式转换为整型,枚举常量占用存储空间以及符号性的不确定,都是枚举类缺点。...类型枚举使用enum class语法来声明: enum class Enumeration{VAL1,VAL2,VAL3=100,VAL4}; 类型枚举具有如下几个优点: (1)强作用域,类型枚举成员的名称不会被输出到其父作用域...decltype来获得其类型并进而使用,但是这样做可能违背类型枚举进行匿名的初衷。...3.C++11对传统枚举类型的扩展 传统枚举类型为了配合C++11引入的类型枚举,C++11对传统枚举类型进行了扩展。...---- 参考文献 [1]深入理解C++11[M].5.1类型枚举.P155-P161 [1]C++11类型枚举——枚举类

    3.2K20

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

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

    1.5K30

    java学习引用类型引用

    在Java中,引用(Strong Reference)是最常见、默认的引用类型。它是一种正常的对象引用,如果一个对象具有引用与之关联,那么即使内存紧张,垃圾回收器也不会回收该对象。...引用可以通过变量 str 直接访问对象,而且只要 str 存在,垃圾回收器就不会回收被引用的字符串对象。引用的特点包括:引用可以直接访问对象。引用不会在内存充足的情况下被垃圾回收器回收。...引用可以避免对象被提前回收,但也可能导致内存泄漏问题。需要注意的是,当一个对象不再被引用时,即没有任何引用指向它时,它将成为垃圾回收的候选对象。...引用是Java中最常用的引用类型,大多数情况下,我们使用的都是引用。...引用类型只有显式地设置o为null,或超出对象的生命周期范围(如非全局变量),则gc认为该对象不存在引用,这时就可以回收这个对象。

    14820

    TypeScript 类型 JavaScript – Rafy Web 框架选型

    上面说的这些要求,对于类型的 .NET、Java 开发来说,其实都是最基本的。但是,对于弱类型的动态语言 JavaScript 来说,却不是易事。...弱类型、动态的特性,导致如果不到运行时,就很难确定一个变量的具体类型,所以也就很难提供代码提示、重构等。...我经过试用后发现,类型的 JavaScript,确实可以解决这些困扰。...TypeScript 上面说了这么多,无非就是想表达:类型很重要、重构很重要、工具很重要。...The first is to align with ES6…….“ 先来说明一下,TypeScript(类型 JavaScript)的优势: 更好的开发工具:支持重构、代码自动完成、代码导航、编译检查

    2.2K60

    ReasonML——新的前端类型语言简介

    在当前的选择中,有两个流派,都能够解决 JavaScript 弱类型语言带来的弊病,给前端带来类型语言的支持。...第二个是以微软开发的 TypeScript 为首的前端新类型语言——这类语言的优势是从根本上支持了类型语言,可以在编译时通过类型推导与判断来从根本上解决类型转换问题,约束开发模型。...但是,这类语言的缺点也非常明显,如果需要支持相关的类型检测和推导,那么就需要对原有的代码进行改造,必定会花费一定的人力。在类型语言中,也分为了两种类型。...安装与编译 因为目前浏览器无法直接识别类型语言,因此我们需要通过编译器,将类型语言编译成 JavaScript 以后才能够在前端浏览器或者 Node.js 中运行。...总结 ReasonML 是一门比 TypeScript 约束严格的多的类型语言(TypeScript 编译报错可以选择忽略掉,不影响使用)。类型语言对于大型的项目开发来说,确实可以带来明显的优势。

    1.8K30

    scala如何解决类型转问题

    scala如何解决类型转问题   scala属于类型语言,在指定变量类型时必须确定数据类型,即便scala拥有引以为傲的隐式推到,这某些场合也有些有心无力。   ...例如:     java同属类型语言,但java可以进行类型转。因此在进行面向接口编程时,借助类型转,只要编码没有问题,就可以使用准备使用的class类。但在scala中,这条路就走不通了。...因为scala没有类型强壮。   那如何办呢?   众所周知,scala编译后变成字节码文件,运行在jvm中。那么从骨子里,scala可以说是脱胎于java,同样scala可以调用java所有的类库。...既然如此,如果在java中不借助类型转,又如何完成同样的事情呢?   结果是:反射!   ...extends ScalaInter { def myOut(str:String)={ println("class2=="+str) } }   下面我们要做的就是通过放射完成类型转的功能

    1.8K90
    领券