【问题标题】:Do variables have to be defined in Python before use?使用前必须在 Python 中定义变量吗?
【发布时间】:2012-04-25 10:07:36
【问题描述】:

Python 是不是很像 PHP,因为我可以调用一个变量,如果它不存在,它将被创建?还是我需要申报?

【问题讨论】:

  • 你说的是“调用一个变量”,但是如果你的意思是“分配给一个变量”,那么是的,在python中,和在PHP中一样,变量将被动态创建。
  • 提示:Python 确实具有一个交互式解释器,您只需运行“python”即可获得 - 解释器等非常适合您自己测试这些简单的东西

标签: python


【解决方案1】:

在 PHP 中,如果你调用了一个不存在的变量,你会得到Notice: Undefined variable。这不会创建它 - 再次执行相同的操作仍会返回警告。

php > echo $some_uninitialized_var;
PHP Notice:  Undefined variable: some_uninitialized_var in php shell code on line 1
php > echo $some_uninitialized_var;
PHP Notice:  Undefined variable: some_uninitialized_var in php shell code on line 1

在 Python 中,如果你调用了一个变量并且它没有被初始化,你会得到一个NameError。同样的事情——它不会被创建——在你真正初始化它之前你会得到NameError

>>> print(some_uninitialized_var)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'some_uninitialized_var' is not defined

>>> print(some_uninitialized_var)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'some_uninitialized_var' is not defined

无声明初始化:

不过,在 PHP 和 Python 中,与 C 不同,您不需要在首次使用变量之前声明变量,这也许就是您的意思。您可以只分配它们,它们将在第一次分配时创建。

// PHP
$a_new_var = 12345;
// All is well...

# Python
a_new_var = 12345
# All is well...

// C
a_new_var = 12345;
// Crash! Horror! Compiler complains!
int a_new_var;
a_new_var = 12345;
// ok...

【讨论】:

  • 我建议将“调用变量”替换为“使用变量”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 1970-01-01
  • 1970-01-01
  • 2017-07-16
  • 2014-10-09
相关资源
最近更新 更多