jakeyfly
V2EX  ›  问与答

Python 中 是的分派 有没有高级有写法 或者现成所库包

  •  
  •   jakeyfly · Aug 3, 2019 · 1529 views
    This topic created in 2488 days ago, the information mentioned may be changed or developed.

    根据传入的不同参数 使用不同的方法

    3 replies    2019-08-04 00:57:17 +08:00
    Trim21
        1
    Trim21  
       Aug 3, 2019 via Android
    functools.singledispatch
    troywinter
        2
    troywinter  
       Aug 3, 2019
    #1 正解,曾经我在面试 python 时第一道题就是让他们写个 singledispatch 出来。。。
    shanguo
        3
    shanguo  
       Aug 4, 2019
    # python3

    from enum import IntEnum


    class Animal(object):
    @staticmethod
    def cat():
    print('cat')

    @staticmethod
    def dog():
    print('dog')


    # 比如参数是数字 1,2
    # 可以使用枚举

    class StatusEnum(IntEnum):
    1 = cat
    2 = dog


    # 使用

    def main(animal_num):
    func = getattr(Animal, StatusEnum(animal_num).name)
    func()

    main(1)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3778 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 10:23 · PVG 18:23 · LAX 03:23 · JFK 06:23
    ♥ Do have faith in what you're doing.