首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中是否可以只声明变量而不赋值?

在Python中是否可以只声明变量而不赋值?
EN

Stack Overflow用户
提问于 2009-03-20 06:21:53
回答 15查看 624K关注 0票数 348

是否可以在Python中声明变量,如下所示:

代码语言:javascript
复制
var

所以它被初始化为None?看起来Python允许这样做,但是一旦你访问它,它就崩溃了。这个是可能的吗?若否,原因为何?

编辑:对于这样的情况,我想这样做:

代码语言:javascript
复制
value

for index in sequence:

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

复制

相关

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2009-03-19 22:23:05

为什么不这样做呢:

代码语言:javascript
复制
var = None

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

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

票数 438
EN

Stack Overflow用户

发布于 2009-03-19 22:47:40

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

代码语言:javascript
复制
val = None
# ...
if val is None:
   val = any_object
票数 60
EN

Stack Overflow用户

发布于 2017-11-09 05:14:32

在Python 3.6+中,您可以对以下内容使用变量注释:

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

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

代码语言:javascript
复制
# 'captain' is a string (Note: initial value is a problem)
captain = ...  # type: str

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

代码语言:javascript
复制
captain: str  # Note: no initial value!

这似乎更直接地符合您所问的“在Python中是否可以只声明一个变量而不赋值?”

票数 59
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/664294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档