相关疑难解决方法(0)

Python范围

我想弄清楚这个:

c = 1
def f(n):
    print c + n 
def g(n):
    c = c + n

f(1) # => 2
g(1) # => UnboundLocalError: local variable 'c' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

谢谢!

python scope

41
推荐指数
3
解决办法
2万
查看次数

无法从python中的函数增加全局变量

可能重复:
在创建它们的函数之外的函数中使用全局变量

我有以下脚本:

COUNT = 0

def increment():
    COUNT = COUNT+1

increment()

print COUNT
Run Code Online (Sandbox Code Playgroud)

我只想增加全局变量COUNT,但是这给了我以下错误:

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    increment()
  File "test.py", line 4, in increment
    COUNT = COUNT+1
UnboundLocalError: local variable 'COUNT' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

python

35
推荐指数
2
解决办法
5万
查看次数

为什么我不能在Python中设置全局变量?

全局变量如何在Python中运行?我知道全局变量是邪恶的,我只是在尝试.

这在python中不起作用:

G = None

def foo():
    if G is None:
        G = 1

foo()
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

UnboundLocalError: local variable 'G' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python global-variables

33
推荐指数
3
解决办法
5万
查看次数

在Python中什么是全局声明?

什么是全球声明?它是如何使用的?我读过Python的官方定义 ;
但是,它对我来说没有多大意义.

python global

33
推荐指数
1
解决办法
3万
查看次数

Python - 如何使局部变量(在函数内)全局化

可能重复:
在创建它们的函数之外的函数中使用全局变量

我正在使用函数,以便我的程序不会乱七八糟,但我不知道如何将局部变量设置为全局.

python function global-variables local

32
推荐指数
5
解决办法
18万
查看次数

从函数中将变量插入全局命名空间?

是否可以编写一个将对象插入全局命名空间并将其绑定到变量的函数?例如:

>>> 'var' in dir()
False
>>> def insert_into_global_namespace():
...        var = "an object"
...        inject var
>>> insert_into_global_namespace()
>>> var
"an object"
Run Code Online (Sandbox Code Playgroud)

python namespaces

21
推荐指数
4
解决办法
2万
查看次数

如何在已定义变量后更改变量?

我正在尝试添加或减去已定义的变量,但我无法弄清楚如何使用新值覆盖旧值.

a = 15

def test():
    a = a +10
    print ( a )

test()
Run Code Online (Sandbox Code Playgroud)

错误信息:

Traceback (most recent call last):
  File "test.py", line 7, in <module>
    test()
  File "test.py", line 4, in test
    a = a +10
UnboundLocalError: local variable 'a' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

python scope python-3.x

21
推荐指数
2
解决办法
7992
查看次数

从另一个函数调用一个函数内部定义的变量

如果我有这个:

def oneFunction(lists):
    category=random.choice(list(lists.keys()))
    word=random.choice(lists[category])

def anotherFunction():
    for letter in word:              #problem is here
        print("_",end=" ")
Run Code Online (Sandbox Code Playgroud)

我之前已经定义过lists,所以oneFunction(lists)效果很好.

我的问题是word在第6行调用.我试图word在第一个函数外面word=random.choice(lists[category])定义相同的定义,但word即使我调用它也总是相同的oneFunction(lists).

我想能够,每次我调用第一个函数,然后第二个函数,有一个不同的word.

如果word不在外面定义,我可以这样做oneFunction(lists)吗?

python variables function

18
推荐指数
3
解决办法
13万
查看次数

18
推荐指数
1
解决办法
3万
查看次数

在python中更改函数内的全局变量

我是python的新手。

我不太明白我需要如何设置变量并在稍后使用的函数中更改它们。我的脚本需要从函数中获取 x 和 y 值,这些值由函数创建的图表的大小决定。这些变量需要稍后在脚本中传递给打印命令以输出 html。所以假设我有全局变量:

    originx_pct = 0.125
    originy_pct = 0.11
Run Code Online (Sandbox Code Playgroud)

但是当函数运行时,这些将需要改变......

    def makeplot(temp, entropy,preq):
        originx_pct = origin.get_points()[0][0]
        originy_pct = origin.get_points()[0][1]
Run Code Online (Sandbox Code Playgroud)

然后在后面写的html页面的javascript中打印出来...

    print('var originx_pct = {};'.format(originx_pct))
    print('var originy_pct = {};'.format(originy_pct))
Run Code Online (Sandbox Code Playgroud)

这两个变量不会改变,我只是不明白我需要做什么来更新它们并能够打印它们(在函数之外)。我假设函数不知道变量,所以它不能改变它们。如果我将 2 个变量作为参数提供给函数,我如何为脚本的打印部分取回值?

python variables scope

12
推荐指数
1
解决办法
1万
查看次数