`
my_java_life
  • 浏览: 143035 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

静态类型、动态类型、强类型以及弱类型语言

 
阅读更多

弄清四个概念:


1.静态类型定义语言    
  一种在编译时,数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。Java和C是静态类型定义语言。    
   
2.动态类型定义语言    
  一种在执行期间才去发现数据类型的语言,与静态类型定义相反。VBScript和Python是动态类型定义的,因为它们是在第一次给一个变量赋值的时候找出它的类型的。    
   
3.强类型定义语言    
  一种总是强制类型定义的语言。Java和Python是强制类型定义的。如果你有一个整数,如果不显示地进行转换,你不能将其视为一个字符串
   
4.弱类型定义语言        
  一种类型可以被忽略的语言,与强类型定义相反。VBScript是弱类型定义的。在VBScript中,可以将字符串   '12'   和整数   3   进行连接得到字符串   '123',然后可以把它看成整数   123,而不需要显示转换。

 

 

How Python's Datatypes Compare to Other Programming Languages

An erudite reader sent me this explanation of how Python compares to other programming languages:
statically typed language
    A language in which types are fixed at compile time. Most statically typed languages enforce this by requiring you to declare all variables with their datatypes before using them. Java and C are statically typed languages.
dynamically typed language
    A language in which types are discovered at execution time; the opposite of statically typed. VBScript and Python are dynamically typed, because they figure out what type a variable is when you first assign it a value.
strongly typed language
    A language in which types are always enforced. Java and Python are strongly typed. If you have an integer, you can't treat it like a string without explicitly converting it.
weakly typed language
    A language in which types may be ignored; the opposite of strongly typed. VBScript is weakly typed. In VBScript, you can concatenate the string '12' and the integer 3 to get the string '123', then treat that as the integer 123, all without any explicit conversion.

So Python is both dynamically typed (because it doesn't use explicit datatype declarations) and strongly typed (because once a variable has a datatype, it actually matters).

from 《Dive Into Python》, see: http://diveintopython.org/getting_to_know_python/declaring_functions.html

分享到:
评论

相关推荐

    动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍

    主要介绍了动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍,需要的朋友可以参考下

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

    静态语言:是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。例如:C++、Java、Delphi、C# 、go等。 动态语言:是在运行时确定数据类型的语言。变量使用之前不需要...

    编程语言里的静态、动态、强类型、弱类型等概念介绍

    主要介绍了编程语言里的静态、动态、强类型、弱类型等概念介绍,需要的朋友可以参考下

    .NET面试题C#.NET

    c和c++是静态语言,也是弱类型语言,perl和php是动态语言,但也是弱类型语言,强类型语言在没有强制类型转换前,不允许两种不同类型的变量相互操作。java、c#和python都是强类型语言。 使用那种语言还是要按需而定。...

    liukexina#weekly#2020-35周-cy-typescript基本类型1

    背景强类型与弱类型js 动态弱类型语言。TypeScript 不是强类型!只是静态类型!快速入门 TypeScriptnpm install -g typesc

    Python学习Day01

    (4)编辑语言:编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言 (5)Python种类: 二、Python入门: 1、变量 2、常量:长时间不发生变化 3、注释:解释说明,被注释的内容不会被执行 4、基础...

    10道常用的Swift面试题(附答案).md

    1)Swift是强类型(静态)语言,有类型推断,Objective-C弱类型(动态)语言 2)Swift面向协议编程,Objective-C面向对象编程 3)Swift注重值类型,Objective-C注重引用类型 4)Swift支持泛型,Objective-C只支持轻...

    10道常用的Swift面试题(附答案)

    1)Swift是强类型(静态)语言,有类型推断,Objective-C弱类型(动态)语言 2)Swift面向协议编程,Objective-C面向对象编程 3)Swift注重值类型,Objective-C注重引用类型 4)Swift支持泛型,Objective-C只支持轻...

    JavaScript中的类继承

    JavaScript Inheritance ...And you think you’re so clever and classless and free–John Lennon JavaScript一种没有类的,面向对象的语言,它使用原型继承来...强类型 弱类型 静态 动态 基于类 基于原型 类

    react-ts-end:快速上手React+TypeScript+Redux技术栈

    快速上手React+...嗯,是的,你可以理解为TypeScript硬是把JavaScript(弱类型语言)"掰弯"了,变成强类型语言;强类语言的优势在于静态类型的检查,TypeScript虽然是强类型的语言,但是如果对象被声明为any类型,

    Vue项目中使用flow做类型检测的方法

    当前项目是用js写的,当项目越来越大,由于js弱类型的特性,相比ts(typescript)这种强类型的语言而言,后期维护会越来越困难。为了解决这个问题,决定使用flow 加入类型检查。 flow了解 flow是fackbook公布的...

    大数据挖掘分析与应用

    1.Python是一门动态解释性的强数据类型的编程语言。 2.语言特征: (1)编译性语言:C、C++需编译,运行速度较快 (2)解释性语言:python平台兼容性 (3)动态语言:python运行时,检测数据类型不用声明 (4)静态...

    tinylog-ui:实时日志分析系统后台数据管理系统

    通过静态类型检测可以尽早检测出程序中隐藏的逻辑错误,对于JavaScript动态的弱类型语言,虽然始终高,但是对于初学者来说,如果不熟悉JavaScript内部的语言机制,很容易造成隐藏的事故。但是通过TypeScript的静态...

    javascript 使用手册

    Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查,如不经编译则就无法实现对象引用的检查。JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查。

    作业:Python第一讲到第四讲总结

    第一讲 一、大数据挖掘、分析与应用展望 Python岗位关键词: Python开发、Python数据分析、...(5)强数据类型 数据类型,仅能强制转换类型安全的语言 (6)弱数据类型 一个变量可赋予不同数据类型的值 总结:python是

    read-vue-code:vue2.6.10版本原始码阅读

    js本身是弱类型语言,java是强类型语言,尽管js不强制我们严格类型使用,但是开发大项目时,变量的不确定性导致我们很头疼,出现不易排查的问题,因此静态类型检查针对Vue.js的二进制利用了静态类型检查,流程可以按...

    大数据挖掘分析与应用笔记

    2.语言特征:编译性语言、解释性语言(python平台兼容性)、动态语言、静态语言、强数据类型(仅能强制转换类型安全的语言)、弱数据类型(一个变量可赋予不同数据类型的值) 3.python环境部署:网址www.python.org ...

    常用的Javascript设计模式小结

    不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些。 术士和暗影牧师很容易成为一个出色的辅助,而一...

    JavaScript设计模式之单例模式实例

    不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些。 术士和暗影牧师很容易成为一个出色的辅助,而一...

    Java版水果管理系统源码-InterView-Q-A::man_judge:面试问答

    不是「强类型」,是「静态类型检查」的「弱类型」。 TS最大的价值是引入了接口、类、继承的编程思想,TypeScript 在 ES2015 之外还提供了 类型 接口 未来的 ES2016+ 特性 (比如注解/装饰器以及异步/等待) 我们可以...

Global site tag (gtag.js) - Google Analytics