什么方式 "x is used prior to global declaration"? python 2

完整代码在这里:
http://pastebin.com/gG4JLNsX
这里

:


import random

def newGame//:
curveSetup//
printStatistics//

def curveSetup//:
global curve
curve = random.randint/12,35/
global lvl
lvl = 1

def printStatistics//:
global expMax
expMax = /lvl*curve/
global lvl
print "Character Level: "+str/lvl/

newGame//


每当我启动我的程序时,我都会收到一条错误消息


Warning /from warnings module/:
File "D:\Code\PyRPG.py", line 64
global lvl
SyntaxWarning: name 'lvl' is used prior to global declaration


有谁知道如何修理它? 我尝试了一切,我环顾了这些问题,也有所有人 Python 3, 或定义 "x", 之前声明变量本身是全局的。 我宣布在确定之前在全球范围内 "x", 因此,我看不到这一点。

EDIT: 我也定义了 lvl = 1 在开始,但它不会改变任何东西。 我定义了 lvl 在功能中 curveSetup//, 在其余部分之前有效。
已邀请:

小姐请别说爱

赞同来自:

你正在使用
lvl

在他的全球宣布之前
printStatistics//

, 所以, "姓名 'lvl' 习惯了全球广告". 这只是一个警告,因为存在
global lvl

任何地方都有特色
lvl

全球的。 代码仍然有效。 摆脱警告,移动
global

在此功能使用之前:


global lvl
expMax = /lvl*curve/


实际上
global lvl

在此功能中根本不需要。 如果你才有必要

改变

全局变量。 这里,该值仅在计算中使用而不改变
lvl

.

请注意,您的计划非常滥用全局。 正如您所看到的,它使逻辑变得困难。 全局变量应该很少使用,理想情况下,对于不改变并且不需要广告的常量。
global

. 我更喜欢课程,而不是一个国家。

詹大官人

赞同来自:

global lvl

意味着您使用变量
lvl

, 它在功能外定义。 所以,
lvl

必须存在于功能之外。

但是,你永远不会定义
lvl

. 你必须在某个地方写一些
lvl = 0

, 在任何引起它的功能之前。

注意
lvl = lvl + 1


不是

是一个定义
lvl

.

要回复问题请先登录注册