【发布时间】:2013-10-22 04:02:10
【问题描述】:
这是我编写的模块中的两个函数:
def start():
numberstr = raw_input("Enter a number to start ")
global number
number = int(numberstr)
readline("data.csv", number)
control()
def control():
operation = raw_input("Repeat (R), Next (N), or Previous (P) ")
if operation == "R":
readline("data.csv", number)
control()
elif operation == "N":
readline("data.csv", number + 1)
control()
elif operation == "P":
readline("data.csv", number - 1)
control()
else:
print "Incorrect command"
control()
start()
我希望它提示输入初始数字,运行 readline 函数,然后运行 control 函数。控制函数应该以该初始数字开始,然后能够在每次运行 readline 函数后根据提示进行递增/递减。
实际行为是它会增加一次然后保持不变。以前的控制是不可预测的;我不确定那里发生了什么。
我已经阅读以避免全局变量,我觉得这可能是问题的根源。我不确定如何实施替代方案。
感谢您的帮助!
【问题讨论】:
-
很确定您只需要在两个函数之外以及每个函数内部声明
global number。 -
实际上,您可能不必在两者之外声明它,只需在两者之内。
-
您无需使用您选择的答案来编辑您的问题。
-
Inbar,我知道,但我在这里这样做是因为我必须对其进行一些更改才能使其正常工作并为其他人的利益而发布。你觉得它增加了不必要的混乱吗?
-
绝对放心。从本网站上的其他问题/答案中排队,以了解我们如何在这里做事。您还可以从一些 Python 教程中受益,将我提出的解决方案修改到无法识别的程度尤其残酷。
标签: python global-variables increment decrement