Functions within classes in dictionary
我试图将一个在类中生成的函数放入字典中,但是不断地得到一个错误:没有定义"name""eggs"。这就是我迄今为止所尝试的,
1 2 3 4 5 | class spam(object): def __init__(self,my_dict={'eggs',eggs}): self.my_dict=my_dict def eggs(self): print('eggs') |
我也试过在课堂外使用
1 2 3 4 5 6 7 | class spam(object): def __init__(self,my_dict): self.my_dict=my_dict def eggs(self): print('eggs') my_dict={'eggs':eggs} |
我还试着用以下词替换那本词典:
1 2 3 | {'eggs':eggs()} {'eggs':spam.eggs} {'eggs':spam.eggs()} |
有人能告诉我如何创建这本字典,或者用另一种方法基于字符串输入来调用这个函数吗?
在
1 2 3 4 5 | class spam(object): def __init__(self, my_dict=None): if my_dict is None: my_dict = {'eggs': self.eggs} self.my_dict = my_dict |
如果要存储原始方法而不是绑定实例方法,请使用
在类外部,
1 | {'eggs': spam().eggs} |
如果您想,可以考虑使用静态方法
1 2 3 | @staticmethod def eggs (): print('eggs') |
所以像EDOCX1[1]这样的东西会起作用。
必须创建类的实例才能访问该函数。你可以在课堂外做:
1 | {'eggs':spam().eggs} |