跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Python 版 switch 尝鲜
未分類
3 2 月 2022

Python 版 switch 尝鲜

Python 版 switch 尝鲜

資深大佬 : ChrisFreeMan 44

def handle_input(self, key_event: event.Event) -> None:     for menu in self.menus:         menu.handle_input(key_event)      if key_event.type == pygame.KEYDOWN:         match key_event.key:             case pygame.K_w | pygame.K_UP:                 self.select_menu_key -= 1                 if self.select_menu_key < 0:                     self.select_menu_key = 0                 self._key_menu_select_handle()             case pygame.K_s | pygame.K_DOWN:                 self.select_menu_key += 1                 if self.select_menu_key > len(self.menus) -1:                     self.select_menu_key = len(self.menus) -1                 self._key_menu_select_handle()  

我的 vim 配色还没发识别这个最新的语法

大佬有話說 (18)

  • 資深大佬 : hutoer

    nice ,现在的 python 特性越来越多,离简洁渐行渐远呀。上次看别人的代码,加了大量 typing ,我有几个地方居然看不懂了。其实我更期待性能的提升,好歹比 php 快吧

  • 資深大佬 : nonduality

    这种写法嵌套深度多了一层,写成`if key_event.key in [pygame.K_w, pygame.K_UP]: …` 应该更清晰。

  • 資深大佬 : lneoi

    进来之前还在想 python 版 switch 游戏机是什么意思

  • 主 資深大佬 : ChrisFreeMan

    @hutoer 等待下个 3.11 版本吧,这个版本后开始对 python 进行性能改进,3.11 据说性能翻倍

  • 主 資深大佬 : ChrisFreeMan

    @nonduality 呃..match 本来就会多一层,后续条件多了就会显得更优雅一点

  • 主 資深大佬 : ChrisFreeMan

    @lneoi 啊,这…

  • 資深大佬 : way2create

    @lneoi +1 我也

  • 資深大佬 : Leviathann

    这个应该是 pattern matching 吧
    把它当 switch 用是最基础的一种形式。。

  • 資深大佬 : 2i2Re2PLMaDnghL

    @nonduality 主要是 pattern matching 用的,单纯判常量是不如直接 if in 。

  • 資深大佬 : CokeMine

    @lneoi +1

  • 資深大佬 : lzk50136

    我还以为 python 写的 switch 模拟器,还在想 python 什么时候性能变得那么高了。

  • 資深大佬 : hervey424840

    我还以为模拟器呢

  • 主 資深大佬 : ChrisFreeMan

    @lzk50136 有 python 写的 game boy 模拟器

  • 資深大佬 : cnit

    等着收律师函吧 :doge

  • 資深大佬 : ungrown

    @hutoer #1 python 的性能一时半会儿上不去,应该是供需两方都不太上心。
    需求就不太强烈,几乎一半的场景都是 IO 密集型,甚至都不在乎所谓的性能和全局锁,剩下的几乎就是拿 python 来写“超脚本”,还有些是临时拿 python 写个原型验证一下算法和流程,打一开始就准备之后拿 C 之类的高性能语言重写。
    供给侧的问题主要还是围绕在“动态类型”这个点上,动态类型不做 JIT 的话就快不起来,做了 JIT 的话性能基本就没啥短板了,pypy 已经证明了。无非这个 JIT 不容易做,和 C 接口犯冲,而 C 接口是 python 扩展性的基石,当然这个并不是没法做,只是优先级不高,进展慢。
    其实真遇到需要运算速度的场景,直接把功能提取出来,用 C 或者 cython 写个模块不就行了。

  • 資深大佬 : wpyfawkes

    我还以为哪个大佬把任天堂 Switch 移植到 Python 上了.Python 版 switch 尝鲜

  • 主 資深大佬 : ChrisFreeMan

    @wpyfawkes 上一个搞 switch 破解的最近被任地狱告到巨额赔款

  • 資深大佬 : volvo007

    性能尽快提高一点就够了, 特性加太多很多老版本也不兼容

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具