在Python脚本中,我遇到了一个在with
语句内定义的变量,但该变量是在语句外部使用的,如下面示例中的file
:
with open(fname, 'r') as file:
pass
print(file.mode)
直观地说,file
不应该存在于with
语句之外,而且这只是偶然的。但是,我在Python文档中找不到关于这是否应该起作用的结论性声明。这种类型的语句是否可以安全使用(对于将来的python版本也是如此),还是应该避免使用?Python文档中指向此信息的指针也非常有用。在
Tags:
变量范围仅适用于
function
、module
和class
级别。如果您在同一个函数/模块/类中,则定义的所有变量都将在该函数/模块/类中可用,而不管它是否在with
、for
、if
等块中定义。在例如,这:
与使用
with
语句的示例一样有效(尽管没有意义)。在但是,您必须小心,因为如果从未输入代码块,则代码块中定义的变量可能实际上没有定义,例如在这种情况下:
^{pr2}$Good description of LEGB rule of thumb for variable scope
相关问题 更多 >
编程相关推荐