如何在Python中优雅地处理变量范围?

2024-04-28 22:00:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我以为可以从函数中更新Python脚本顶部声明的变量,但事实并非如此。我设法用global做到这一点:

count = 0

def updateCount():
    global count
    print count
    count = (count+1)%10

for x in xrange(10):
    updateCount()

这是处理此问题的最佳方法(函数在更高级别更新变量)? 什么是'Python'的方式来处理这个。全球化似乎有点松散。你知道吗

另外,请让我知道这是否已经回答,我会结束问题。我已经读了很多关于这个问题的答案,但不太清楚。你知道吗


Tags: 方法函数in脚本声明fordefcount
1条回答
网友
1楼 · 发布于 2024-04-28 22:00:57

根据您想要实现的目标,存在多种解决方案。你知道吗

对你的问题的评论中已经提到了一些:

  • 创建一个类。updateCount是一个方法,count是一个属性
  • updateCount返回值,而不是使用全局count

你也可以用

  • 闭包
  • 发电机

最“pytohnic”(读作“cool”)的方法是使用发电机,下面是一个例子

def updateCount(x):
    count = 0
    for i in xrange(x):
        count = (count+1) % 10
        yield count

for i in updateCount(15):
    print i

相关问题 更多 >