在Python中是否可能只声明一个变量而不给它赋值?

2024-04-23 20:00:08 发布

您现在位置:Python中文网/ 问答频道 /正文

可以用Python声明一个变量吗?以下内容:

var

所以它初始化为无?看起来Python允许这样做,但是一旦您访问它,它就会崩溃。这可能吗?如果不是,为什么?

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

value

for index in sequence:

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

重复

相关


Tags: andinnone声明编辑forindexif
3条回答

在Python3.6+中,您可以使用变量注释来实现这一点:

https://www.python.org/dev/peps/pep-0526/#abstract

PEP 484引入了类型提示,也称为类型注释。虽然它的主要焦点是函数注释,但它也引入了类型注释的概念来注释变量:

# 'captain' is a string (Note: initial value is a problem)
captain = ...  # type: str

PEP 526旨在向Python中添加用于注释变量类型(包括类变量和实例变量)的语法,而不是通过注释来表示它们:

captain: str  # Note: no initial value!

这似乎更直接地符合您所问的“在Python中只声明一个变量而不分配任何值是可能的吗?”

为什么不这样做:

var = None

Python是动态的,所以不需要声明;它们自动存在于分配它们的第一个作用域中。所以,你所需要的只是一个常规的旧作业语句,如上所述。

这很好,因为你永远不会得到一个未初始化的变量。但要小心——这并不意味着你不会以错误的初始化变量而告终。如果您将某个东西初始化到None,请确保这是您真正想要的,如果可以,请指定更有意义的东西。

我强烈建议您阅读Other languages have "variables"(我将其作为相关链接添加)-两分钟后,您将知道Python有“名称”,而不是“变量”。

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

相关问题 更多 >