是否可以像这样在Python中声明一个变量?:

var

使它初始化为None?Python似乎允许这样做,但一旦你访问它,它就崩溃了。这可能吗?如果不是,为什么?

编辑:我想这样做的情况下:

value

for index in sequence:

   if value == None and conditionMet:
       value = index
       break

相关问题

为什么函数可以修改调用者感知到的一些参数,而不能修改其他参数? Python变量声明

另请参阅

Python名称和值 其他语言有“变量”


当前回答

为什么不这样做呢:

var = None

Python是动态的,所以你不需要声明;它们自动存在于分配给它们的第一个作用域中。所以,你所需要的只是上面提到的一个常规的赋值语句。

这很好,因为您将永远不会得到一个未初始化的变量。但是要注意——这并不意味着您不会得到错误的初始化变量。如果你init一些东西为None,确保这是你真正想要的,如果可以的话,分配一些更有意义的东西。

其他回答

我衷心建议你阅读其他语言有“变量”(我添加了一个相关链接)-在两分钟内你会知道Python有“名称”,而不是“变量”。

val = None
# ...
if val is None:
   val = any_object

我通常将变量初始化为表示类型的东西,例如

var = ""

or

var = 0

如果它将是一个对象,那么在实例化它之前不要初始化它:

var = Var()
var_str = str()
var_int = int()

是否可以在Python中声明一个变量(var=None):

def decl_var(var=None):
if var is None:
    var = []
var.append(1)
return var

你看起来像在用Python写C语言。如果你想在一个序列中找到一些东西,Python有内置的函数来做这件事,比如

value = sequence.index(blarg)