【发布时间】:2021-04-17 20:33:29
【问题描述】:
我正在尝试将一个 python 文件中定义的变量导入另一个文件中,两者都在同一个目录中。 以下是示例:
# filename1
class Proton:
def test(self):
self.a_tags = soup_file.find_all('a')
self.cases = [str(each.get_text()) for each in self.a_tags]
self.links = [(link.get('href')) for link in soup_file.find_all('a')]
# I want to import the above values in the below file
# filename2
import sqlite3
class Database:
def __init__(self):
self.create_connection()
self.create_table()
def create_connection(self):
self.conn = sqlite3.connect('gopel.db')
self.curr = self.conn.cursor()
def create_table(self):
self.curr.execute('''CREATE TABLE testfall(cases TEXT, links TEXT)''')
def testfall_db(self):
self.curr.execute('''INSERT INTO testfall VALUES(?,?)''',(self.cases,self.links,))
self.curr.execute('''SELECT cases FROM testfall WHERE cases=?''', [self.cases])
self.conn.commit()
我在 filename2 中使用了from filename1 import *,但这些值仍未定义,并且在数据库中它存储 NULL 值。关于如何将这些导入到 filename2 文件的任何建议。
PS:filename1 和 filename2 是两个不同的文件
【问题讨论】:
-
你只导入
sqlite3...请提供minimal reproducible example的代码和你得到的错误 -
filename1中定义的唯一变量是Proton。您还希望导入哪些其他变量? -
您不能导入类属性。在
testfall_db()中,self是Database,而不是Proton,所以你不能在那里访问self.cases。你需要创建一个Proton,然后你才能访问它的cases属性。 -
您似乎期望
self.cases是Proton实例的变量,可以在Database的实例中访问。 -
您似乎对对象的工作方式存在根本性的误解。
标签: python