从函数到非全局变量的执行

时间:2016-09-17 21:11:19

标签: python

我在Python中发现了一件非常奇怪的事情。当试图从某个函数访问普通对象(如intfloat等)时,它要求我将变量定义为全局变量。

但是当我尝试对Queue做同样的事情时,结果却不同了;在那种情况下,即使我没有使它全局化,我也可以从函数中接近Queue

一些对象如何像全局变量(例如Queue)和其他一些对象(如intstring等)?

我清楚自己: 这是两个代码示例: 一些def:

def some_def():
    q.put(1)

一些主要的:

q = Queue.Queue()

另一个对象: 一些def:

def some_def():
    number += 1

一些主要的:

number = 0

两个不同的代码示例将以不同的方式执行: 第一个将把值放在Queue中,而第二个将抛出一个Error,因为'number'不是一个全局变量。

0 个答案:

没有答案