在动态类型语言中定义变量

时间:2015-07-23 04:54:09

标签: python

是否有必要在动态类型编程语言中定义类型?

enter image description here

我知道,我们可以使用'else number = default'。但它只是展示想法的一个例子。

3 个答案:

答案 0 :(得分:2)

动态和静态语言都需要"定义"。动态语言通常不需要声明"。定义是实际创建变量的时间。声明是一种正式的说法,从现在开始,这个变量存在" - 比如C. {/ p>中的int n;

在Python中,定义在赋值时发生。当您尝试获取变量的值(也称为解除引用)时会发生使用。您无法在不定义变量的情况下使用变量,这就是您看到此错误的原因。

像perl这样的语言,他们称之为autovivification。这意味着如果您使用变量而不定义它,它将自动为您定义。在这种情况下,该程序的行为将有所不同。 number的值为0

答案 1 :(得分:1)

您的输入为3,因此number尚未定义,因为if-else阶梯错过了它。

如果您不想要“全能”其他条件,那么只需在if-else阶梯前指定number = 'default'

答案 2 :(得分:1)

键入某种语言与您所获得的错误无关。

动态类型表示名称/变量在编译时未绑定到特定类型。我们可以使相同的名称指向同一程序中的不同类型对象(在不同的行程中)。但这并不意味着您可以在定义之前访问名称/变量。

您得到的错误是因为根本没有定义名称/变量。此外,不是在number中定义else,而是在number块之前将if..elif定义为某个默认值似乎更容易。