V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
jakeyfly
V2EX  ›  问与答

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

  •  
  •   jakeyfly · Aug 3, 2019 · 1459 views
    This topic created in 2463 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   ·   2475 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 05:01 · PVG 13:01 · LAX 22:01 · JFK 01:01
    ♥ Do have faith in what you're doing.