Crossin的编程教室

标题: B.py调用A.py里面的类不成功,求解?!谢谢 [打印本页]

作者: ecorrodl    时间: 2019-10-28 14:41
标题: B.py调用A.py里面的类不成功,求解?!谢谢
A.py文件代码:
import pymysql
# 定义一个类
class MysqlHelper:
    # 定义连接数据库的信息函数
    def __init__(self, host, port, user, passwd, db, charset):
        self.host = host
        self.port = port
        self.user = user
        self.passwd = passwd
        self.db = db
        self.charset = charset
    # 定义一个连接数据库的函数
    def connect(self):
        self.conn = pymysql.connect(
            self.host, self.port, self.user, self.passwd, self.db)
        self.cursor = self.conn.cursor()
    # 定义一个关闭数据库连接的函数
    def close(self):
        self.cursor.close()
        self.conn.close()
    # 定义一个数据库执行的函数
    def cud(self, sql, params):
        try:
            self.connect()
            self.cursor.execute(sql, params)
            self.conn.commit()
            self.close()
            print('执行成功!')
        except Exception as e:
            print('执行出错'+str(e))
    # 定义一个数据库查询的函数
    def select(self, sql, params):
        try:
            self.connect()
            self.cursor.execute(sql, params)
            result = self.cursor.fetchall()
            self.close()
            print(result)
        except Exception as e:
            print('执行出错'+str(e))



B.py文件代码:
import pymysql
from MySQLHelper import MysqlHelper
name = input('请输入更正的学生姓名:')
id = int(input('请输入该学生的学籍编号:'))
sql = "UPDATE STUDENTS SET NAME=%s WHERE ID=%s"
sqlhelper = MySQLHelper.MysqlHelper('localhost',3306,'root','Eco0212@@','python3','utf8')
sqlhelper.MysqlHelper.cud(sql, params=[name, id])


运行提示错误:
E:\Python\protects>C:/Users/Administrator/AppData/Local/Programs/Python/Python37-32/python.exe e:/Python/protects/MySQL/mysql_updata.py请输入更正的学生姓名:ww请输入该学生的学籍编号:13Traceback (most recent call last):  File "e:/Python/protects/MySQL/mysql_updata.py", line 7, in <module>    sqlhelper = MySQLHelper.MysqlHelper('localhost',3306,'root','Eco0212@@','python3','utf8')NameError: name 'MySQLHelper' is not defined


作者: ecorrodl    时间: 2019-10-28 14:41
求各位前辈指点一下!

作者: crossin先生    时间: 2019-10-28 15:02
前面写了
from MySQLHelper import MysqlHelper
那你使用就是直接用
MysqlHelper(...

或者如果你要用
MySQLHelper.MysqlHelper
那前面就要改成
import MySQLHelper

课程里有的 https://python666.cn/cls/lesson/39/

另外,发帖的时候有个添加代码的按钮 <> ,你这个黑压压一片看得有点眼花……
作者: ecorrodl    时间: 2019-10-29 09:48
crossin先生 发表于 2019-10-28 15:02
前面写了
from MySQLHelper import MysqlHelper
那你使用就是直接用

太感谢了!!昨天第一次在论坛求解,还不知道有这么方便的操作,下次一定注意!!再次感谢!!!




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5