如何在一个类的元组中调用函数?

时间:2018-07-19 21:58:29

标签: python oop

我正在尝试在显示为 view(),add(),delete exit_program 的元组中调用函数。但是,每当我运行代码时,控制台都会返回:

TypeError: view() missing 1 required positional argument: 'self'

我还尝试在功能之前添加 self Menu ,但无济于事。反正有解决办法吗?

代码如下:

from collections import namedtuple

class Menu(object):

    def view(self):
        pass
    def add(self):
        pass
    def delete(self):
        pass
    def exit_program(self):
        exit()

    Option = namedtuple("Option", "label", "function")
    _separator = "=" * 25
    _options = {1: Option('View goals', view()), 2: Option('Add new goal', add()),
                3: Option('Delete existing goal', delete()), 4: Option('Exit program', exit_program())}

1 个答案:

答案 0 :(得分:0)

首先,似乎您想让您的方法成为“静态方法”,因为您是直接通过类(而不是类的实例)来调用它们的。因此,您也可能想要“ classmethods”。 answer可以帮助您确定所需的种类。

第二,您不能以这种方式存储未绑定的对象。参见此answer