-1

我有一个 Python 中的数据库模块,它连接到数据库,从表登录中提取数据。提取数据(即用户名和密码)由类内部方法中的变量 uname 和 passw 保存。我正在尝试登录 login.py 中的数据库模块,我需要变量 uname 和 passw。如何访问变量?这是database.py。

#usr/bin/python

import MySQLdb as mdb


class data:
    hey = "ok"
    def __init__(self):
        """Retrieves the data from the database"""

    def db(self):   
        #Database Connection
        con = mdb.connect('localhost', 'root', 'devil', 'data');


        #Submit statements to SQL server
        cursor = con.cursor()       
        cursor.execute("SELECT * FROM login")

        #Retrieves data from SQL
        rows = cursor.fetchall()  
        row = list(rows)
        self.uname = [x[1] for x in row]
        self.passw = [k[2] for k in row]    

hello = data()

我想在 login.py 中调用变量 uname 和 passw。我怎样才能做到这一点?

4

2 回答 2

2

在您的示例中uname,并且passw是在外部不可见的局部变量data.db()。要使其可见,您可以通过添加使它们成为实例属性(字段)self.。在构造函数中,您可以在方法中添加self.uname = None和。然后您可以通过访问它们。db()self.uname = [...]uname = hello.uname

如果你想在其他文件中使用它:

import database

db_data = database.data()
print('user: %s' % (db_data.uname))
于 2012-08-30T05:55:25.307 回答
2

你不能。这些变量是方法的本地变量,除非方法正在执行,否则这些变量不存在。如果您想稍后读取这些值,则需要通过 do 来使它们成为实例self.uname = ...属性self.passw = ...。然后,您可以稍后从您引用该对象的任何地方阅读它们。

于 2012-08-30T05:52:33.697 回答