Python函数getver返回值无输出,替换为print则正常的问题排查
问题解答:Python函数return无输出,print正常输出的原因
这是个非常常见的Python入门小问题,我来给你拆解清楚:
核心区别:return vs print
return的作用:它是将函数计算的结果返回给调用该函数的代码,本身并不会主动把结果输出到控制台。当你在脚本里直接调用getver()时,函数确实正确返回了1.5.2,但这个返回值只是被Python解释器接收了,没有被明确指令要求显示,所以你看不到任何输出内容。print()的作用:它是主动将内容输出到标准输出(也就是你看到的控制台),所以替换return为print后,结果会直接显示出来。
解决办法(保留return同时看到输出)
如果你想保留函数的return逻辑(方便后续代码复用这个返回值),可以在调用函数时把返回值传给print():
import urllib,re def getver(): url='https://github.com/Bendr0id/xmrigCC/releases' website = urllib.urlopen(url) html = website.read() links = re.findall(r'(?<=<a href=")[^"]*\bgcc-win64.zip\b', html) link=links[0] version=link.split('/') ver0=version[5] return ver0 # 调用函数并打印返回值 print(getver())
另外补充一点:如果是在Python交互式环境(比如命令行输入python进入的交互模式)中调用getver(),Python会自动打印函数的返回值,这时候用return也能看到结果。
小提示
你的代码使用的是Python2的urllib.urlopen,如果是在Python3环境下运行会报错,建议替换为urllib.request.urlopen哦~
内容的提问来源于stack exchange,提问作者Alessandro
相关产品推荐
相关产品推荐

