微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:如何在方法外部定义指向方法内部方法的指针映射

如何解决Python:如何在方法外部定义指向方法内部方法的指针映射

我想使用类的一些方法,由参数指定。所以我用字典定义了一个指针映射。问题是 Python 不允许我在另一个方法(例如构造函数)之外定义它。所以我想知道是否可行。让我给你举个例子:

class clase():
    mapa = { 1 : metodo1,2 : metodo2  }
    def metodo(self,x):
        self.mapa[x]()
    def metodo1(self):
        print("Metodo 1 ejecutado")
    def metodo2(self):
        print("Metodo 2 ejecutado")

objeto = clase()

objeto.metodo(2)
objeto.metodo(1)

这里的错误是“name 'metodo1' is not defined”;如果我使用其他声明:

class clase():
    mapa = { 1 : self.metodo1,2 : self.metodo2  }
...

错误是“名称'self'未定义”(这让我非常惊讶!)

我怎么说,我可以在构造函数中定义地图。有用。但是我想知道在任何方法之外是否有任何方法可以做到这一点,因为我认为在代码维护期间我会更具可读性。

实现:

我证明在最后声明了地图:

class clase():

    def metodo(self,x):
        self.mapa[x]()
    def metodo1(self):
        print("Metodo 1 ejecutado")
    def metodo2(self):
        print("Metodo 2 ejecutado")
    mapa = { 1 : metodo1,2 : metodo2  }

objeto = clase()
objeto.metodo(2)

但是我遇到了另一个错误:“metodo2() 缺少 1 个必需的位置参数:'self'”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。