用Python方式存储和引用类方法

时间:2019-05-30 04:29:28

标签: python python-3.x

我有一个“世界”类,它有几种涉及生成不同类型特征的类方法,我想将对这些方法的引用存储在字典中,其中它们是值,键是它们所事物的“类型”在生成河流,城堡,道路或示例时,最Python化的方法是什么?我可以在“ World”类中创建一个字典,但是不确定是否有最好的主意,我当时认为最好将字典存储在“ World”类之外,但是我该如何引用该方法?我可以将这些方法存储为字符串,例如“ generate_site_river”,然后使用attrget()来获取该方法,但是我不确定这是一个好主意,最Python的方法是做什么?

1 个答案:

答案 0 :(得分:0)

您可以将对方法本身的引用存储在字典中-而不是字符串。

这是一个例子:

class World(object):

    def __init__(self, name):
        self._name = name

    def create_river(self):
        print(f"Created a river in {self._name}")


if __name__ == '__main__':
    w = World('Earth')

    method_dict = {
        'river': w.create_river
    }

    method_dict.get('river')()

输出:

Created a river in Earth