能不能不用search_info,只使用一个self
时间: 2024-03-14 10:44:54 浏览: 18
如果你要在函数内部引用对象属性`self.search_info`,那么可以将`search_info`定义为对象属性,不需要将其作为函数的参数传递。例如:
```
class AdminManage:
def __init__(self, window):
self.search_info = ''
def find_row(self):
# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306, db='crime', user='qingying', password='123456')
cursor = db.cursor()
# 构造查询语句
sql = "SELECT * FROM criminal WHERE id LIKE '%{0}%' OR name LIKE '%{0}%' OR age LIKE '%{0}%' OR gender LIKE '%{0}%' OR address LIKE '%{0}%' OR crime_type LIKE '%{0}%' OR crime_time LIKE '%{0}%' OR punishment LIKE '%{0}%' OR release_time LIKE '%{0}%'".format(self.search_info)
# 执行查询语句
try:
cursor.execute(sql)
results = cursor.fetchall()
# 如果查询结果为空,则在GUI界面上弹出提示窗口
if len(results) == 0:
messagebox.showinfo('提示', '未找到相关数据')
else:
# 清空表格
for record in self.tree.get_children():
self.tree.delete(record)
# 显示查询结果
for row in results:
self.tree.insert('', 0, values=row)
except:
messagebox.showinfo('警告!', '查询失败,数据库连接失败!')
# 关闭数据库连接
db.close()
```
在这个版本的代码中,`search_info`被定义为了对象属性,初始化为一个空字符串。在函数内部,引用了`self.search_info`来构造查询语句。这样,就不需要将`search_info`作为函数参数传递了,而是直接在函数内部引用`self.search_info`即可。