python模块调用的问题

 平凡瞬间15 发布于 2022-10-28 20:03

我在b.py想调用a.py中的getColumn(),但是提示 Cursor closed;请问该怎么解决,如果我只写了a.getColumn(),a.py中的其他语句会被执行吗

b.py

import a
a.getColumn()
a.py
import pymysql
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='adminimda',db='db0')
cur = conn.cursor()
            
def getColumn(column,table):
    r=cur.execute("SELECT %s FROM %s"%(column,table))
    print (r)

cur.close()
conn.close()
3 个回答
  • 你可以选择在b中手动调用close

    2022-11-12 01:44 回答
  • 在import a时,a中的代码(除了getColumn函数)已经执行过一编,所以cursor已经关闭,之后再调用getColumn函数,会抛出cur.close()执行过的结果。

    2022-11-12 01:44 回答
  • a.py:

    import pymysql
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='adminimda',db='db0')
    cur = conn.cursor()
                
    def getColumn(column,table):
        r=cur.execute("SELECT %s FROM %s"%(column,table))
        print (r)
    
    if __name__ == '__main__':
        cur.close()
        conn.close()
    

    原因是导入a.py时, cur.close() conn.close()被执行过一次。

    或者你把 cur.close() conn.close() 放到getColumn函数内。

    python中 __name__及__main()__的妙处 http://www.cnblogs.com/liqilei/archive/2010/08/11/1797715.html

    2022-11-12 01:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有