字典中的类中的函数

时间:2017-01-07 20:12:06

标签: python python-3.x class dictionary

我正在尝试放置一个在字典中的类中创建的函数,但不断收到错误' name' eggs'没有定义。这是我到目前为止所尝试的,

class spam(object):
    def __init__(self,my_dict={'eggs',eggs}):
        self.my_dict=my_dict
    def eggs(self):
        print('eggs')

我也试过在课外使用

class spam(object):
    def __init__(self,my_dict):
        self.my_dict=my_dict
    def eggs(self):
        print('eggs')

my_dict={'eggs':eggs}

我也尝试用以下字母替换该字典:

{'eggs':eggs()}
{'eggs':spam.eggs}
{'eggs':spam.eggs()}

有人可以告诉我如何创建这个词典或其他方式来根据字符串输入调用此函数。

3 个答案:

答案 0 :(得分:1)

您必须创建该类的实例才能访问该功能。你可以在课外做到这一点:

{'eggs':spam().eggs}

答案 1 :(得分:1)

在课外,eggs是非静态类方法,因此如果没有像

这样的类实例,则无法访问它
{'eggs': spam().eggs}

如果您愿意,可以考虑使用

进行静态处理
@staticmethod
def eggs ():
    print('eggs')

{'eggs': spam.eggs}这样的东西可行。

答案 2 :(得分:1)

__init__()内创建字典。

class spam(object):
  def __init__(self, my_dict=None):
    if my_dict is None:
      my_dict = {'eggs': self.eggs}
    self.my_dict = my_dict

如果要存储原始方法而不是绑定实例方法,请使用spam.eggstype(self).eggs(两者的语义略有不同)。