V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
yuanse
V2EX  ›  问与答

Python 是哪种类型语言

  •  
  •   yuanse · Apr 29, 2020 · 3390 views
    This topic created in 2195 days ago, the information mentioned may be changed or developed.

    基础比较薄弱,今天看了下不是特别清楚到底是强类型还是弱类型,还有静动态,wiki 看了下还是比较模糊,

    tutuk5
        1
    tutuk5  
       Apr 29, 2020
    动态的,变量不用定义类型
    fgwmlhdkkkw
        2
    fgwmlhdkkkw  
       Apr 29, 2020   ❤️ 1
    可以在运行时创建新的类型( Python 当然可以),就是动态语言吧……我这么理解。
    “静动态”是什么?支持持反射的吗?
    yuanse
        3
    yuanse  
    OP
       Apr 29, 2020
    @fgwmlhdkkkw 静态和动态
    Orenoid
        4
    Orenoid  
       Apr 29, 2020   ❤️ 1
    动态类型是肯定的。姑且算是强类型吧,但争议比较大。
    superrichman
        5
    superrichman  
       Apr 29, 2020 via iPhone
    python 是动态强类型语言
    ClericPy
        6
    ClericPy  
       Apr 29, 2020
    随手一搜到处都是
    为什么说 Python 是强类型语言? - 知乎 - https://www.zhihu.com/question/43498005
    yuanse
        7
    yuanse  
    OP
       Apr 29, 2020
    @tutuk5 那么强弱类型呢,有些写的 “强类型语言:不允许改变变量的数据类型,除非进行强制类型转换。” python 是弱类型的语言么,查资料看着看着就蒙了
    klesh
        8
    klesh  
       Apr 29, 2020 via Android
    强类型
    yuanse
        9
    yuanse  
    OP
       Apr 29, 2020
    @ClericPy 只是看公司文档别人写的 python 是弱类型语言😂
    iConnect
        10
    iConnect  
       Apr 29, 2020 via Android
    @yuanse 弱类型允许 str + int 不出错,大多语言都会出错,js 不会。
    superrichman
        11
    superrichman  
       Apr 29, 2020
    @yuanse
    ```
    a = 1
    b = "b"
    a + b
    ```
    这段代码在 python 里会报错,在 js 里会正常执行。这就是强类型和弱类型的区别。
    Norie
        12
    Norie  
       Apr 29, 2020 via iPhone
    胶水型
    ClericPy
        13
    ClericPy  
       Apr 29, 2020   ❤️ 1
    @yuanse #9 在 V2EX 这种地方都有看到说它弱类型的, 心里有数就行了, 我都懒得和那群人争辩了...
    tairan2006
        14
    tairan2006  
       Apr 29, 2020
    强类型动态语言

    弱类型语言,一般人应该只接触过 js 和 bash
    hanyceZ
        15
    hanyceZ  
       Apr 29, 2020
    PYTHON 是一门动态解释性的强类型定义语言:编写时无需定义变量类型;运行时变量类型强制固定;无需编译,在解释器环境直接运行。
    thfurior
        16
    thfurior  
       Apr 29, 2020
    强类型 动态
    yuanse
        17
    yuanse  
    OP
       Apr 29, 2020
    感谢大家的指正
    fank99
        18
    fank99  
       Apr 29, 2020
    动态强类型,js 那种就动态弱类型
    blodside
        19
    blodside  
       Apr 29, 2020
    从类型上看:强类型,没法 cast,不像 c/c++这些弱类型语言可以随便 cast 。但是是动态的,运行时才能确定类型。
    现在也不全是隐式类型了,可以和 ts 一样标类型了。
    wtsamuel
        20
    wtsamuel  
       Apr 29, 2020
    胶水
    pisc
        21
    pisc  
       Apr 29, 2020 via Android
    1. 动态类型和静态类型很好区分,主要是看类型检查的时间是否在运行之前进行。

    2. 然后根据语言的 specification 来判断是否是动态类型,比如 Python 通常允许不进行类型检查就执行,那么通常说它就是动态类型语言。另外如果你总是使用 mypy 在 Python 做类型检查,那么你说你用的 Python 是静态类型也没问题。

    3. 不用使用强、弱类型这个概念,因为就连学术上也没个标准的说法,这不怪谁,PL 在术语标准化方面做的不是很好。

    4. 楼上说 Python 是强类型 /弱类型什么的,几乎都是道听途说,不要信。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2345 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 15:39 · PVG 23:39 · LAX 08:39 · JFK 11:39
    ♥ Do have faith in what you're doing.