确定变量是否已定义在Python中

553 投票
6 回答
920768 浏览
提问于 2025-04-15 15:12

你怎么知道一个变量在代码的某个地方被设置了呢?这并不总是很明显,因为(1)这个变量可能是在某些条件下才被设置的,(2)这个变量也可能是在某些条件下被删除的。我想找一些类似于Perl中的defined()、PHP中的isset()或者Ruby中的defined?这样的东西。

if condition:
    a = 42

# is "a" defined here?

if other_condition:
    del a

# is "a" defined here?

6 个回答

168

我觉得最好避免这种情况。这样写会更简洁明了:

a = None
if condition:
    a = 42
464

你可以用 'a' in vars() or 'a' in globals() 这段代码来检查变量 'a' 是否存在。

如果你想更严格一点,还可以检查内置的变量,方法是
'a' in vars(__builtins__)

788

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当一个用户点击按钮时,我们希望程序能够响应这个动作并做出相应的处理。

为了实现这个功能,我们可以使用“事件监听器”。简单来说,事件监听器就像是一个守卫,它在等待某个特定的事件发生,比如鼠标点击、键盘输入等。一旦这个事件发生,守卫就会立刻通知程序去执行预定的操作。

举个例子,如果你在网页上点击一个按钮,事件监听器就会捕捉到这个点击事件,然后可以让程序显示一条消息或者改变按钮的颜色。这种方式让我们的程序能够与用户进行互动,提升用户体验。

总之,事件监听器是让程序能够响应用户操作的重要工具,它帮助我们创建更生动和有趣的应用。

try:
    thevariable
except NameError:
    print("well, it WASN'T defined after all!")
else:
    print("sure, it was defined.")

撰写回答