yuanse
V2EX  ›  问与答

Python 是哪种类型语言

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

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

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

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

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

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

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