【发布时间】:2017-05-01 06:43:03
【问题描述】:
现在我知道了全局声明,也可以弄清楚为什么会出现错误(函数中引用了计数,我稍后会调用它),但想不出任何方法来规避它。为什么count 在定义变量后调用函数f 仍会出错?我怎样才能重写这段代码sn-p?
感谢您的帮助!
def f(x):
if count < x:
<some irrelevvant code>
for i in range(10):
count = 1
f(3)
<some more irrelevant code>
抱歉,我认为我最初的问题有点不清楚。我提到的“不相关代码”实际上可能是相关的,因此我正在上传我的整个代码:
def ways(l, h):
if count2 < h:
for v in A: #A is a globally defined list
if u != v:
if check(t, v):
count2 += 1
t = v
ways(l, h)
else:
count1 += 1
count1 = 0
for u in A:
count2 = 1
t = u
ways(9, 3)
现在由于我递归调用函数ways,我不能将count2 定义为ways 中的函数参数。每次 u for 循环运行时,Count2 必须重置为 1,但每次调用 ways 时都不会。
【问题讨论】:
-
您将
count明确传递给f。 -
在循环中,+ f(3, count)
-
你可以在定义
f(x)之前做count=1,它会起作用,但你不应该这样做,最好将count明确传递给f,因为Explicit is better than implicit.跨度> -
@Darth Kotik:是的!使用 Python 之禅!
标签: python function variables reference variable-assignment