Types 动态类型语言中的类型

Types 动态类型语言中的类型,types,dynamic-typing,Types,Dynamic Typing,动态类型语言(即Python)在运行时执行类型检查,因此变量或参数可以引用任何类型的值。 语言定义是否要求不键入变量和参数? 将语言修改为具有类型的变量和参数有意义吗?您可以混合使用静态和动态类型;有很多语言可以做到这一点 在最简单的情况下,您将拥有一个类层次结构,该层次结构包含以object为根的所有类型(使用Python术语)。每个“非类型化”变量都有类型对象,因此它可以保存任何变量。其他变量可以有更具体的类型,例如int 实现仍然需要执行运行时类型检查,但它可以优化那些在编译时可以确定类型

动态类型语言(即Python)在运行时执行类型检查,因此变量或参数可以引用任何类型的值。 语言定义是否要求不键入变量和参数?
将语言修改为具有类型的变量和参数有意义吗?

您可以混合使用静态和动态类型;有很多语言可以做到这一点

在最简单的情况下,您将拥有一个类层次结构,该层次结构包含以
object
为根的所有类型(使用Python术语)。每个“非类型化”变量都有类型
对象
,因此它可以保存任何变量。其他变量可以有更具体的类型,例如
int

实现仍然需要执行运行时类型检查,但它可以优化那些在编译时可以确定类型的检查

执行类似操作,只是将静态类型部分卸载到C编译器:

def foo():
    cdef int i = 0  # statically typed variable
    ham = "spam"    # dynamically typed variable

    while i < 10:
        print(ham)
        i += 1
def foo():
cdef int i=0#静态类型变量
ham=“spam”#动态类型变量
当我<10时:
印花(火腿)
i+=1

除非@jon Skeet这样的人优雅地拯救了这个问题,否则这个问题很可能会被解决

在此之前,我相信任何有强类型编程背景的人都会为至少指定类型的选项而争论。但归根结底,语言的创造者/修改者不喜欢输入的要求,以至于没有做出任何努力来允许指定类型的可能性。所以我不会指望它发生,即使它可能真的很有意义

根据我的简短研究,python似乎不允许指定类型。但是您可以使用isinstance检查类型


现在作为个人观点,我说为什么不呢。如果相关语言的维护者/创建者能够以不影响语言的效率/实际意图的方式进行操作,那么他们至少应该允许有兴趣添加指定类型功能的人这样做。

您最初的问题已经解决。要再次提问,你需要做的不仅仅是措辞上的细微改变。很多语言都会这样做:渐进式键入、动态键入语言的类型推断、契约等等。提问的方式有什么问题?