【发布时间】:2018-05-15 16:10:52
【问题描述】:
我不断收到错误“Database.db_search(search) NameError: name 'Database' is not defined”。
如果有人可以帮助我,我将不胜感激,我也是 Stack Overflow 的新手,因此对于我在提问的整体布局方面可能犯的任何错误,我深表歉意。
谢谢。
数据库文件:
from Staff import *
def db_search(self):
query = "SELECT * FROM customer_information WHERE Last_Name = %s"
cursor.execute(query, (last_name,))
for (Last_Name) in cursor:
print(Last_Name)
return last_name
员工档案:
from Database import *
def gett():
search = search_entry.get()
Database.db_search(search)`
【问题讨论】:
-
除了我的回答之外,我想问一下您为什么要进行循环导入?为什么
Database需要导入所有Staff,如果Staff也导入所有Database?? -
嗨,Greg,非常感谢您抽出宝贵时间查看我的代码,我之所以进行循环导入,是因为程序中的其他地方正在执行其他方法/函数。如果你愿意,我可以告诉你,你可以给我任何关于如何改进的提示。真的很感谢时间的伙伴。再次感谢,祝您晚上愉快。
-
嘿臭名昭著。老实说,我不会查看你所有的代码并提出改进建议,我只是没有时间。我要说的是,通常循环导入是个坏主意(stackabuse.com/python-circular-imports)。通常情况下,如果您查看每个模块的内容,您将意识到一种更好地将功能组合在一起的方法,从而消除了循环依赖的需要。并非总是如此,有时具有循环 dep 是有效的,但通常表明设计不佳,并可能引入副作用/更奇怪的错误。
标签: python-3.5