我正在使用python软件包进行数据库管理。提供的类具有方法delete()
,该方法可从数据库中删除记录。在删除之前,它会要求用户从控制台(例如控制台)验证操作。 Proceed? [yes, No]:
我的功能需要执行其他操作,具体取决于用户是否选择删除记录。是否可以从包中获取功能所要求的用户输入?
玩具示例:
def ModuleFunc():
while True:
a=input('Proceed? [yes, No]:')
if a in ['yes','No']:
#Perform some actions behind a hood
return
此函数将等待两个响应之一,并在返回其中一个后返回None。调用此函数后,是否可以确定用户的响应(无需修改此函数)?我认为通常对Package的源代码进行修改不是一个好主意。
答案 0 :(得分:1)
我会使用Keylogger之类的将按键事件保存到某个地方(文件或内存)。然后,您将可以重用最后一个。
但是,如果您可以修改模块程序包并重新分发,那将更加容易。
eye = K.tile(eye, (K.shape(x)[0], 1, 1))
收件人
Return
答案 1 :(得分:1)
为什么不只在运行时修补类?假设您有一个文件./lib/db.py
定义了这样的类DB
:
class DB:
def __init__(self):
pass
def confirm(self, msg):
a=input(msg + ' [Y, N]:')
if a == 'Y':
return True
return False
def delete(self):
if self.confirm('Delete?'):
print ('Deleted!')
return
然后在main.py
中可以做到:
from lib.db import DB
def newDelete(self):
if self.confirm('Delete?'):
print('Do some more stuff!')
print('Deleted!')
return
DB.delete = newDelete
test = DB()
test.delete()
看到它正常工作here