是否可以只声明一个变量而不在 Python 中分配任何值?

新手上路,请多包涵

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

 var

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

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

 value

for index in sequence:

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

相关问题

也可以看看

原文由 Joan Venge 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 570
2 个回答

为什么不这样做:

 var = None

Python是动态的,所以你不需要声明东西;它们自动存在于分配它们的第一个范围内。因此,您所需要的只是上面的常规旧赋值语句。

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

原文由 Todd Gamblin 发布,翻译遵循 CC BY-SA 2.5 许可协议

在 Python 3.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 中分配任何值?”

注意:Python 运行时不强制执行函数和变量类型注释。它们可以被第三方工具使用,例如类型检查器、IDE、linters 等。

原文由 Tagar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题