首页 > 解决方案 > 如何在类的元组中调用函数?

问题描述

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

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

我还尝试在函数前面包含selfMenu,但无济于事。有没有什么办法解决这一问题?

这是代码:

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())}

标签: pythonoop

解决方案


首先,您似乎希望您的方法是“静态方法”,因为您直接通过类(而不是类的实例)调用它们。您也可能想要“类方法”。这个答案将帮助您确定您想要哪种类型。

其次,您不能以这种方式存储未绑定的对象。看到这个答案


推荐阅读