for Python variable initialization
对于python变量(例如list和integer),如果我们不初始化它,它们是否总是无?即使我们没有显式地初始化,python还会为我们进行初始化吗?
对于初始化,我的意思是,
事先谢谢,林
- 在javascript中,未定义的变量返回undefined,但在python中,它会引发致命错误。
变量在首次赋值时被定义。通常,这遵循variable = value的约定。直到这一点,它才被定义,从这一点开始直到它的作用域结束。
如果一个变量没有被定义,试图读取它的数据将引发一个NameError。另一方面,EDCOX1〔2〕、0和EDCOX1〔4〕是定义变量可相等的不同类型的数据值。
明确地:
- []—没有元素的数组
- 0—int值,等于0号。
- None—一种特殊的数据类型,用来表示变量没有值。这与未定义的变量非常不同。
python不会自动初始化一个变量——怎么可能呢?在不知道将对哪种数据或值进行操作的情况下,Python无法处理未定义的变量。所以它抛出了一个异常,特别是NameError。
- 或者一个UnboundLocalError。
- @你说的"变量没有定义"是什么意思?请举一个例子。谢谢。:)
- @当一个变量被赋值时,它就被定义了。在此之前,它是未定义的。
- @在什么情况下,python会自动为变量分配/初始化none?没有这种情况?谢谢。
- @linma python永远不会自动将None分配给变量。它不会自动为变量赋值。
- @博士,谢谢所有的评论,我们如何检查是否定义了一个变量?我想处理这样的情况,如果变量被分配到"无"或未定义,我将触发一些角箱处理逻辑。谢谢。
- @Linma如果要检查变量是否包含值None,则可以使用if var is None。你永远不应该,永远不,永远不应该处于一种你不确定变量是否被定义的情况下。
- @另外,如果你发现这个答案/评论很有用,你应该接受这个答案,这样其他人就可以从中受益。
- @当然,问题是有人调用了我的方法(假设我编写了一个SDK),他们可能会传递一个未定义的变量(这是他们的问题,我想安全地检查它是否未定义)。是否有方法检查变量是否未定义?
- @当然,如果有方法检查未定义的变量,我会让它成为被回答的变量。:)
- @Linma关于检查是否定义了变量的讨论如下:stackoverflow.com/questions/1592565/…。但是请注意,这永远不应该做。您应该始终知道代码中的某个点是否定义了变量。
- @谢谢,谢谢,但是我怎么知道一个变量是否被定义了,如果它是其他人的方法输入变量呢?