`
my_java_life
  • 浏览: 146127 次
  • 性别: 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 学习中关于动态类型静态类型强类型弱类型的问题.docx

    弱类型语言的灵活性高,但这也可能导致难以预料的行为和错误。 #### Python的类型系统 根据以上定义,我们可以得出结论:**Python是一种强类型的动态类型语言**。这意呈现出Python的两大特点: 1. **动态类型**:...

    弱类型、强类型、动态类型、静态类型语言的区别是什么.md

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

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

    本文将深入探讨动态语言、动态类型语言、静态类型语言、强类型语言和弱类型语言的区别,帮助理解它们各自的特点。 1. 动态语言: 动态语言,也被称为动态编程语言,其核心特征是在运行时允许程序结构的变化。这意味...

    弱类型语言允许将一块内存看做多种类型

    - **Python**:虽然 Python 在表面上看起来是弱类型语言,因为它支持动态类型,但实际上在操作不同类型的数据时仍然需要遵循严格的规则,因此被视为强类型语言。 ### Java 中 WeakHashMap 的使用及特性 #### 五、...

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

    了解静态与动态、强类型与弱类型语言的差异,有助于我们更好地把握编程语言设计的深层次原理,以便做出更合理的决策。总之,静态与动态、强类型与弱类型这些概念,是对编程语言特性的一种高层次抽象,是学习和使用...

    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

    TypeSystems论文

    弱类型语言通常更容易编写,但也可能引入难以察觉的错误。 论文还可能涵盖了类型推断,这是一种自动确定变量类型的机制,常见于Haskell、Scala等语言。类型推断既保持了代码的简洁性,又提供了静态类型系统的安全性...

    主流编程语言比较(C,C++,JAVA等。。)

    | Java | 强类型 | 静态检验类型 | 否 | 是 | 是 | 否 | | .NET | 强类型 | 静态 | 否 | 是 | 是 | 否 | | Ruby | 强类型 | 动态解释执行 | 否 | 是 | 否 | 否 | | JavaScript | 强类型 | 动态 | 是 | 否 | 否 | 否 ...

    阿里云大学编程语言学习内容集锦

    根据描述,编程语言可分为强类型与弱类型语言,静态类型与动态类型语言。强类型语言对变量的数据类型有严格要求,在编译时会进行类型检查。而弱类型语言则对类型检查相对宽松,变量的数据类型可以在运行时改变。静态...

    程序语言设计概论7次作业标准答案

    强类型语言和弱类型语言的区别在于对类型强制转换的限制,强类型语言通常不允许隐式类型转换,从而避免了潜在的问题。 语义学是理解编程语言行为的基础,在HWA3中,学生将学习词法语义、静态语义和动态语义。词法...

    2024年深圳服面经总结(附带答案)

    C,C++ 是弱类型、静态类型检查的,Python 是强类型、动态类型检查的。 强类型:偏向于不容忍隐式类型转换 弱类型:偏向于容忍隐式类型转换 静态类型: 编译的时候就知道每一个变量的类型,因为类型错误而不能做的...

    一节课掌握TypeScript.pptx

    而JavaScript则属于弱类型语言,它允许不同类型的值之间进行隐式转换,这可能导致预期外的行为。例如,将字符串"2"与数字2相加在JavaScript中会得到"22",而在强类型语言中这样的操作会被捕获。 **静态类型与动态...

    Python基本语法 数据类型 列表 元组 字典

    # javascript:是一门动态的弱类型语言,运行时识别数据类型 字符串(str) # 单引号和双引号 temp = 'hello python' temp = "hello python" print(temp) # 转义符处理 temp="I say \"hello world\...

    Python基础1-2章-小白自学自用版

    强类型语言如Python不允许不经过转换就改变变量类型,而弱类型语言如VBScript则允许自动类型转换,但这也可能导致类型不安全的问题。 总之,Python作为一门动态解释性的强类型定义语言,结合了动态类型语言的灵活性...

    python动态性强类型用法实例

    ### Python动态性强类型用法详解 #### 一、引言 Python作为一种高级编程语言,在语法设计上具有灵活性和简洁性的特点。与C#等其他语言相比,Python在变量的使用上展现出独特的动态性和强类型特性。本文将详细介绍...

Global site tag (gtag.js) - Google Analytics