Python - 在子节点的父节点中使用函数

时间:2015-09-11 16:19:23

标签: python python-3.x

<击> 我正在尝试创建一个模块,在导入时可以用来轻松定义交互式控制台的命令&#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()

1 个答案:

答案 0 :(得分:0)

问题出在你的Test()函数中,而不是它没有被调用 -

def Test():
    print(Test)

您正在打印Test本身的引用,因此它会打印您获得的内容 - <function Test at 0x027234B0>

示例显示 -

>>> def a():
...     print(a)
...
>>> a()
<function a at 0x0018B198>

你应该打印一些有意义的东西。