我听到很多新的编程语言都是动态输入的,但是当我们说一种语言是动态类型而非静态类型时,它实际意味着什么呢?
computer-science programming-languages static-typing dynamic-typing
我看到这些术语在编程中遍布各地,我对它们的含义有一个模糊的概念.搜索显示,事实上,这些事情已被问到堆栈溢出.据我所知,语言中的静态/动态类型与强/弱类型略有不同,但这种差异是我的意思.不同的来源似乎使用不同的含义甚至可以互换地使用这些术语.我找不到谈论两者的地方,实际上说明了差异.如果有人能够在这里为我和世界其他地方清楚地说明这一点,那会更好.
terminology static-typing weak-typing strong-typing dynamic-typing
如何可靠地确定对象是否具有numpy类型?
我意识到这个问题违背了鸭子打字的哲学,但是想法是确保一个函数(使用scipy和numpy)永远不会返回一个numpy类型,除非它被调用numpy类型. 这出现在另一个问题的解决方案中,但我认为确定一个对象是否具有numpy类型的一般问题远远远离它们应该分开的原始问题.
简单的问题:我在编译语言(如C++/Java)和Python/Javascript等解释语言中进行了大量编程(专业和个人).我个人发现,当我使用静态类型语言编程时,我的代码几乎总是更强大.但是,我遇到的几乎所有解释语言都使用动态类型(PHP,Perl,Python等).我知道为什么编译语言使用静态类型(大多数时候),但我无法弄清楚解释语言设计中对静态类型的厌恶.
为什么陡峭断开?它是解释语言性质的一部分吗?OOP?
type-systems language-design static-typing typing dynamic-typing
有人能告诉我什么是强打字和弱打字意味着什么更好?
prototyping static-typing weak-typing strong-typing dynamic-typing
在我对动态和静态类型的阅读中,我不断反对编译静态类型语言的假设,同时解释动态类型语言.我知道一般来说这是真的,但我对异常感兴趣.
我真的希望有人不仅可以提供这些例外的一些例子,而是试图解释为什么决定这些语言应该以这种方式工作.
type-systems programming-languages static-typing dynamic-typing
我想知道如何在Python中使用对象和函数名称的变量.在PHP中,您可以这样做:
$className = "MyClass";
$newObject = new $className();
Run Code Online (Sandbox Code Playgroud)
你是如何用Python做这种事的?或者,我完全不理解与Python的一些根本区别,如果是这样,它是什么?
我想知道是否有一种编程语言可编译为机器代码/二进制文件(不是字节码然后由VM执行,在考虑打字时完全不同),它具有动态和/或弱类型,例如:
想一下编译语言,其中:
问题:
我认为一种动态但强大的类型化编译语言真的能感觉到,但它有可能吗?
我有一个Python函数,它接受一个必须是整数的数字参数,以使其行为正确.在Python中验证这个的首选方法是什么?
我的第一反应是做这样的事情:
def isInteger(n):
return int(n) == n
Run Code Online (Sandbox Code Playgroud)
但我不禁想到这是1)昂贵的2)丑陋和3)受到机器epsilon的温柔怜悯.
Python是否提供任何本地的类型检查变量方法?或者这被认为是违反语言的动态类型设计?
编辑:因为有很多人问过 - 有问题的应用程序使用IPv4前缀,从平面文本文件中获取数据.如果任何输入被解析为浮点数,则该记录应被视为格式错误并被忽略.
dynamic-typing ×10
python ×4
typing ×3
type-systems ×2
weak-typing ×2
duck-typing ×1
numpy ×1
prototyping ×1
terminology ×1
type-safety ×1
types ×1