python程序的执行顺序_Python方法中的执行顺序

参见英文答案 >

Assigning to variable from parent function: “Local variable referenced before assignment”                                    5个

我试过看几个不同的例子,但我不确定为什么这不起作用.说我有一些像这样的代码:

def loadVariable():

global count

count = 0

def loadDictionary():

location = 'some location'

global myDict

myDict = pickle.load(open(location, 'rb'))

def main():

loadVariable()

loadDictionary()

for item in myDict:

if item.startswith("rt"):

count += 1

item = item[3:]

if __name__ == '__main__':

main()

在我看来,if语句被执行,它启动了main()方法.然后,加载全局变量,加载字典并执行for循环.

但是,当我运行代码时,我被告知在分配之前引用了局部变量count.为什么会这样?

编辑(解释我在评论中写的一些内容):

这不起作用(虽然我认为这是因为全局在这里使用错误):

global count

def loadVariables()

count = 0

def main():

loadVariables()

rest of code etc

这也不起作用:

def loadVariables()

count = 0

def main():

global count

loadVariables()

rest of code etc

到目前为止我唯一可以使用它的方法是使用上面提供的链接,即将计数视为列表,如下所示:

def loadVariables():

global count

count = [0]

def main():

loadVariables():

rest of code etc

count[0] += 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值