首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python3函数返回值

Python3函数返回值
EN

Stack Overflow用户
提问于 2017-04-04 16:15:17
回答 1查看 1.3K关注 0票数 0

我相信我的函数有一些不正确的地方,但是我对python和函数仍然很陌生,而且我忽略了我的问题所在。在下面的代码中,我不向函数发送值,但是一旦函数读取了数据库,我希望它将值从数据库中提取回主程序中。我在函数中放置了一个print语句,以确保它从数据库中提取值,一切都正常工作。在主区域的函数调用之后,我复制并粘贴了相同的打印行,但是我得到了一个NameError: 'wins' is not defined。这让我相信我没有正确地返回这些值?

代码语言:javascript
运行
复制
#Python3
import pymysql

def read_db():
    db = pymysql.connect(host='**********',user='**********',password='**********',db='**********')
    cursor = db.cursor()
    sql = "SELECT * FROM loot WHERE id = 1"
    cursor.execute(sql)
    results = cursor.fetchall()
    for row in results:
        wins = row[2]
        skips = row[3]
        lumber1 = row[4]
        ore1 = row[5]
        mercury1 = row[6]
    db.commit()
    db.close()
    print ("Wins = ",wins," Skips = ",skips," Lumber = ",lumber1," Ore = ",ore1," Mercury = ",mercury1)
    return (wins, skips, lumber1, ore1, mercury1)

read_db()
print ("Wins = ",wins," Skips = ",skips," Lumber = ",lumber1," Ore = ",ore1," Mercury = ",mercury1)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-04 16:18:01

只执行read_db()会导致返回值被抛出。您需要将返回值赋值给变量:

代码语言:javascript
运行
复制
wins, skips, lumber, ore = read_db()

返回一个名为wins的变量并不意味着wins变量将在您调用read_db()的作用域中可用。您需要显式地分配返回值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43212537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档