我有一个我不明白的非常奇怪的问题。 我正在扩展pwman3,我使用模块选择。我将它导入ui.py文件的顶部。
但是,当我运行代码时,我收到以下错误:
错误:'function'对象没有属性'select'
相关代码是:
import select
...snip...
class PwmanCli(cmd.Cmd):
...snip ...
def print_node(self, node):
width = str(_defaultwidth)
print "Node %d." % (node.get_id())
print ("%"+width+"s %s") % (typeset("Username:", ANSI.Red),
node.get_username())
print ("%"+width+"s %s") % (typeset("Password:", ANSI.Red),
node.get_password())
print ("%"+width+"s %s") % (typeset("Url:", ANSI.Red),
node.get_url())
print ("%"+width+"s %s") % (typeset("Notes:", ANSI.Red),
node.get_notes())
print typeset("Tags: ", ANSI.Red),
for t in node.get_tags():
print "%s " % t.get_name(),
print
def heardEnter():
#import select # this fixes the problem ...
i,o,e = select.select([sys.stdin],[],[],0.0001)
for s in i:
if s == sys.stdin:
input = sys.stdin.readline()
return True
return False
def waituntil_enter(somepredicate,timeout, period=0.25):
mustend = time.time() + timeout
while time.time() < mustend:
if somepredicate():
break
time.sleep(period)
self.do_cls('')
print "Type Enter to flush screen (autoflash in 5 sec.)"
waituntil_enter(heardEnter(), 5)
如果我在函数import select
内heardEnter
,一切正常。
但我仍然想知道导致这种行为的原因
很高兴听到一些专家的声音。
答案 0 :(得分:1)
也许名称之间存在冲突,请尝试将导入语句更改为from select import select