V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kunluanbudang
V2EX  ›  Python

Python 中实现 switch, 真的有这个必要吗?

  •  
  •   kunluanbudang · 2018-07-14 19:13:36 +08:00 · 2632 次点击
    这是一个创建于 2311 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近休假回老家, 就在长沙面了几场 Python 的面试, 也好为以后回老家发展做打算, 不得不说, 这几场面试的面试官都颇为奇葩(还有点自以为是). ( 有点想知道, 整体技术氛围如此, 还是我遇到的只是特例?)

    一个例子: Python 中怎么写 switch ?
    我: 直接写 if-else 就可以了, 简单清晰, 别人很容易看懂.
    对方: (似乎不满意) 我是说, 怎么实现 switch ?
    我: ??? 如果非要模拟这种写法, 可以用 dict 做一做分支路由, 可以实现类似 switch 的效果. 不过写 if-else 是最好的, 不花哨, 实用
    对方: (似乎还是不满意) 巴拉巴拉.... 我觉得你对技术没有热情.
    我: ?????? ( 我当时就预感接下来会有更多奇葩情况出现, 于是以 『这只是主观问题, 每个人有不同看法, ,口味不同』为由, 快速地跳过了这道题)
    果然, 更多奇葩问题出现了, 面完之后, 当即在心中, 将这家公司拉入黑名单.
    ( 结论: 回老家发展, 可能是一个美好的幻想? 还不如先在一线赚钱, )

    上面都是瞎扯淡, 找找共鸣, 大家看看就好 :)

    下面是技术问题:
    那么, 请教 V 友大佬: Python 中实现 switch, 真的有这个必要吗? 你们平时是如何做的?
    第 1 条附言  ·  2018-07-14 20:24:41 +08:00
    这个帖子, 不可避免地, 又被上升到价值观判断了, 这是我不愿意看到的 :)

    面试官想什么, 我还真不知道, 不过『提一个明确的问题』, 也是一个面试官的基本素养吧?

    另外, 沟通交流, 尊重是相互的, 对方给我的感觉就是『自以为是, 片面地给别人打标签』, 这点基本的判断, 我个人还是有的 ( 这里, 我 judge 了别人, 是我的错, 希望我的感觉是错误的, 面试官确实是一个世外高人, 确实这个问题别有深度 :) )

    当然我也不是那种无聊的人, 非要将别人 judge 一番, 才满足, 毕竟我怎么怎么样, 也影响不到别人.
    至少我也不说别人公司的名字, 对方的名字.

    (只是发出来, 增加一下生活的调剂罢了, 大佬们千万不要随便 judge 别人哦, 也不要做价值观判断 :)


    )
    第 2 条附言  ·  2018-07-14 20:24:58 +08:00
    这个帖子, 不可避免地, 又被上升到价值观判断了, 这是我不愿意看到的 :)

    面试官想什么, 我还真不知道, 不过『提一个明确的问题』, 也是一个面试官的基本素养吧?

    另外, 沟通交流, 尊重是相互的, 对方给我的感觉就是『自以为是, 片面地给别人打标签』, 这点基本的判断, 我个人还是有的 ( 这里, 我 judge 了别人, 是我的错, 希望我的感觉是错误的, 面试官确实是一个世外高人, 确实这个问题别有深度 :) )

    当然我也不是那种无聊的人, 非要将别人 judge 一番, 才满足, 毕竟我怎么怎么样, 也影响不到别人.
    至少我也不说别人公司的名字, 对方的名字.

    (只是发出来, 增加一下生活的调剂罢了, 大佬们千万不要随便 judge 别人哦, 也不要做价值观判断 :)


    )
    XIVN1987
        1
    XIVN1987  
       2018-07-14 19:24:44 +08:00 via Android
    别说没必要,说不定哪天 python 新版本就真给加上了,,毕竟现在 python 每个新版本都会加新语法
    keysona
        2
    keysona  
       2018-07-14 19:25:28 +08:00
    条件多的话,倾向用字典
    Dunkelnacht
        3
    Dunkelnacht  
       2018-07-14 19:27:41 +08:00
    PEP-3103 的话,十年前就被拒掉了 https://www.python.org/dev/peps/pep-3103/
    XIVN1987
        4
    XIVN1987  
       2018-07-14 19:30:50 +08:00 via Android
    @Dunkelnacht
    之前拒掉也不表示以后不会加,,
    easylee
        5
    easylee  
       2018-07-14 19:31:27 +08:00 via Android
    年轻就在一线赚钱吧……一线玩的 high 啊。
    家里挺富裕那就无所谓了。
    SimbaPeng
        6
    SimbaPeng  
       2018-07-14 19:49:56 +08:00 via Android
    我觉得当大家面试遇到奇葩问题的时候,应该转变一下想法,面试官出题的主要意图不是这道题有什么意义,更多的是考察以你的能力是否实现。能实现不代表实际中让你去这么应用。
    ebingtel
        7
    ebingtel  
       2018-07-14 19:52:42 +08:00
    @SimbaPeng 意思是用 c 拓展 支持 switch 语法?
    SimbaPeng
        8
    SimbaPeng  
       2018-07-14 19:58:30 +08:00 via Android
    我发现大多数人遇到一个自己答不出来的陌生问题,第一反应是反驳这道题有什么意义。
    young6
        9
    young6  
       2018-07-14 20:04:00 +08:00 via Android
    是没这必要。不过就像有的面试问你排序,实际开发中谁自己写排序?面试主要是看你的思维模式及解决问题的能力,我是觉得这个面试官没毛病。
    lingerz
        10
    lingerz  
       2018-07-14 20:08:19 +08:00 via Android
    赞同楼上,的确别人问你怎么实现,你回答有什么意义,他再问你,显然面试官没毛病。
    di94sh
        11
    di94sh  
       2018-07-14 20:10:20 +08:00 via Android
    有必要,原因是,写单元测试的时候可以少写很多。
    yclissetj
        12
    yclissetj  
       2018-07-14 20:10:52 +08:00 via iPad
    @young6 加一。 不过觉得说到 dict 也就够了,面试官还不满意是想听到什么答案呀……
    SimbaPeng
        13
    SimbaPeng  
       2018-07-14 20:12:26 +08:00 via Android
    @ebingtel 我并没有针对这道题而谈,我只是觉得题目是否有意义并不是大家吐槽面试官的槽点。不会就答不会就行了,避重就轻的说了一大趴啦自认为的最佳实践,难道面试官不知道这些东西吗?只会拉低面试官对你的印象而已。
    cheesea
        14
    cheesea  
       2018-07-14 20:20:11 +08:00
    赞同楼主,没意义的问题。
    退一步讲楼主你也讲了实现的思路了呀,条件分支多的话搞一个字典,这不就结了么。不知道那位面试官还想怎么样。
    lingerz
        15
    lingerz  
       2018-07-14 20:25:58 +08:00 via Android
    @cheesea 没意义是没意义,但是面试官问的问题,会就答就好了。说自己觉得那个那个才是最好,也不说会不会,这样给人感觉就是很高傲。第一遍就不满了,第二遍还要强调一遍 if 才是最佳的,这明显面试官会不满。
    rogwan
        16
    rogwan  
       2018-07-14 20:38:13 +08:00 via Android
    三个以内条 if,超过 3 条以上字典模拟 switch
    imn1
        17
    imn1  
       2018-07-14 20:50:03 +08:00
    其实你要学习一点:
    有人问你一个「明显」没有意义的问题时,这个人明显带有意义,而且这个意义和问题本身内容无关

    例如:
    你把月亮摘下来
    我和你妈掉到水里,先救谁
    mingyun
        18
    mingyun  
       2018-07-14 22:06:13 +08:00
    换个公司
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2729 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:21 · PVG 19:21 · LAX 03:21 · JFK 06:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.