我目前正在研究如何将我保存的变量放入下一个函数中。为了说明我的意思,我在线获取最新版本号如下:
try:
webversion = urllib2.urlopen(
"http://www." + server + "/version").read().rstrip()
if webversion > version:
update_files()
elif version >= webversion:
print "[SYSTEM] You have the latest version: v." + version
在update_files()
函数中,我非常想将我获得的变量(webversion
可能还有version
(带到下一个函数中。
我正在考虑将此变量设置为全局变量:
try:
global webversion
webversion = urllib2.urlopen(
"http://www." + server + "/version").read().rstrip()
if webversion > version:
update_files()
elif version >= webversion:
print "[SYSTEM] You have the latest version: v." + version
有没有更好的方法/更聪明的方法?
只是将参数传递给函数:
函数定义:
def update_files(webversion, version):
# ... function execution
和代码:
try:
# global webversion we don't need it
webversion = urllib2.urlopen("http://www." + server + "/version").read().rstrip()
if webversion > version:
update_files(webversion, version)
elif version >= webversion:
print "[SYSTEM] You have the latest version: v." + version
#And be careful to add except, with try!
except:
print("Error!")
变量从一个函数传递到另一个函数的方式,前提是它们都在同一个文件中:
def my_second_function(my_var):
print(my_var)
def my_first_function(var_1, var_2):
my_second_function(var_1):
# do whatever you want here.
return True
如果从my_first_function
调用,my_var
将具有与var_1
相同的值,如下所示:
my_first_function(6,2)
请注意,如果脚本是单独运行的,并且未导入到其他位置,则必须在my_first_function
之前定义my_second_function
。或者,您可以使用以下方法运行程序:
if __name__ == '__main__':
my_second_function(6, 2)
您的案例:
在您的情况下,我们可以将其定义为:
def update_files(web_ver, ver):
# You can do whatever you want with these, including sending them elsewhere.
return True # or whatever
try:
webversion = urllib2.urlopen("http://www." + server + "/version").read().rstrip()
if webversion > version:
update_files(webversion, version)
else:
print("[SYSTEM] You have the latest version: v." + version)
except:
print("Error!")
update_files(webversion, version)
您也可以return web_ver, ver
或return another_func(web_ver, ver)
。