获取另一个功能请求的用户键盘输入

时间:2018-10-26 20:31:24

标签: python-3.x input

我正在使用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的源代码进行修改不是一个好主意。

2 个答案:

答案 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