2024-04-23 20:00:08 发布
网友
可以用Python声明一个变量吗?以下内容:
var
所以它初始化为无?看起来Python允许这样做,但是一旦您访问它,它就会崩溃。这可能吗?如果不是,为什么?
编辑:我想这样做的情况如下:
value for index in sequence: if value == None and conditionMet: value = index break
在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,请确保这是您真正想要的,如果可以,请指定更有意义的东西。
None
我强烈建议您阅读Other languages have "variables"(我将其作为相关链接添加)-两分钟后,您将知道Python有“名称”,而不是“变量”。
val = None # ... if val is None: val = any_object
在Python3.6+中,您可以使用变量注释来实现这一点:
https://www.python.org/dev/peps/pep-0526/#abstract
PEP 484引入了类型提示,也称为类型注释。虽然它的主要焦点是函数注释,但它也引入了类型注释的概念来注释变量:
PEP 526旨在向Python中添加用于注释变量类型(包括类变量和实例变量)的语法,而不是通过注释来表示它们:
这似乎更直接地符合您所问的“在Python中只声明一个变量而不分配任何值是可能的吗?”
为什么不这样做:
Python是动态的,所以不需要声明;它们自动存在于分配它们的第一个作用域中。所以,你所需要的只是一个常规的旧作业语句,如上所述。
这很好,因为你永远不会得到一个未初始化的变量。但要小心——这并不意味着你不会以错误的初始化变量而告终。如果您将某个东西初始化到
None
,请确保这是您真正想要的,如果可以,请指定更有意义的东西。我强烈建议您阅读Other languages have "variables"(我将其作为相关链接添加)-两分钟后,您将知道Python有“名称”,而不是“变量”。
相关问题 更多 >
编程相关推荐