<击>
我正在尝试创建一个模块,在导入时可以用来轻松定义交互式控制台的命令&#39;。然而,这要求我能够从父文件运行一个函数,当我这样做时,我得到这个:<function Test at 0x027234B0>
而不是正在运行的函数。
我在python中使用类和模块有点新,所以我不确定我的目的是什么。
这是Menu(Menu.py)的模块:(不完整,只是试图让这个工作)
击>
我只是一个愚蠢的人,忘了把东西放在引号中
class Menu:
def __init__(self):
self.temp=0
self.menuobj = dict()
def add(self, command, function):
self.menuobj[command] = function
print(command)
return 0
def debug(self):
print(self.menuobj)
def lookup(self, command):
return self.menuobj[command]
def mainloop(self):
while 1:
x = input("> ")
try:
self.menuobj[x]()
except KeyError:
print("Not Found")
if __name__ == "__main__":
print("This module is meant to be imported")
调用它的模块:
import Menu
def Men():
a = Menu.Menu()
a.add("1",Test)
a.mainloop()
def Test():
print(Test)
Men()
答案 0 :(得分:0)
问题出在你的Test()
函数中,而不是它没有被调用 -
def Test():
print(Test)
您正在打印Test
本身的引用,因此它会打印您获得的内容 - <function Test at 0x027234B0>
。
示例显示 -
>>> def a():
... print(a)
...
>>> a()
<function a at 0x0018B198>
你应该打印一些有意义的东西。