【发布时间】:2023-03-11 16:00:02
【问题描述】:
Python 非常容易学习和理解;我喜欢它,因为它使用了关键字、缺乏复杂的语法(与 perl 相反,据我所知)以及易于使用的数据结构。但是,我无法忍受缺少变量声明,因为它无法明确告诉 Python 您希望变量具有什么作用域。是否有任何语言具有我喜欢 Python 的所有特性以及变量声明,也许还有一组不错的库可用?
感谢。
【问题讨论】:
-
Python 的作用域相当容易推断。我真的不明白你的意思。
-
变量声明与作用域有什么关系?如果你在大多数语言中做“正确的事情”并声明你初始化的地方,你就会遇到完全相同的情况。
-
@Nick Bastin:在具有真正闭包的语言中,变量声明用于设置范围 - 如果您在函数内声明变量,则该函数内声明的任何其他内容都可以读取和写入(即使稍后调用)。 Python 不允许 赋值 到更高范围的事物(全局范围除外)。
-
@Amber:当然你的意思是 Python 2.x。 Python 3.x 具有用于此目的的 nonlocal 语句。
-
@Amber:首先,这既不存在也不存在 - 没有语言可以让您对范围进行完全访问控制(我们没有 ACL 来定义名称传播)。第二点你错了——Python 允许显式分配更高范围内的名称(w/
nonlocal和global)。 Python 完全允许 OP 想要的东西,他们可能只是不理解它。
标签: python declaration declare variable-declaration