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 配色还没发识别这个最新的语法😅
1
hutoer 2021-11-28 09:02:24 +08:00
nice ,现在的 python 特性越来越多,离简洁渐行渐远呀。上次看别人的代码,加了大量 typing ,我有几个地方居然看不懂了。其实我更期待性能的提升,好歹比 php 快吧
|
2
nonduality 2021-11-28 09:05:26 +08:00
这种写法嵌套深度多了一层,写成`if key_event.key in [pygame.K_w, pygame.K_UP]: ...` 应该更清晰。
|
3
lneoi 2021-11-28 09:33:22 +08:00 8
进来之前还在想 python 版 switch 游戏机是什么意思
|
4
ChrisFreeMan OP @hutoer 等待下个 3.11 版本吧,这个版本后开始对 python 进行性能改进,3.11 据说性能翻倍
|
5
ChrisFreeMan OP @nonduality 呃..match 本来就会多一层,后续条件多了就会显得更优雅一点
|
6
ChrisFreeMan OP @lneoi 啊,这...
|
7
way2create 2021-11-28 11:05:43 +08:00
@lneoi +1 我也
|
8
Leviathann 2021-11-28 13:12:01 +08:00 via iPhone 1
这个应该是 pattern matching 吧
把它当 switch 用是最基础的一种形式。。 |
9
2i2Re2PLMaDnghL 2021-11-28 16:24:43 +08:00
@nonduality 主要是 pattern matching 用的,单纯判常量是不如直接 if in 。
|
11
lzk50136 2021-11-29 08:52:44 +08:00
我还以为 python 写的 switch 模拟器,还在想 python 什么时候性能变得那么高了。
|
12
hervey0424 2021-11-29 09:03:56 +08:00
我还以为模拟器呢
|
13
ChrisFreeMan OP @lzk50136 有 python 写的 game boy 模拟器
|
14
cnit 2021-11-29 10:25:54 +08:00
等着收律师函吧 :doge
|
15
ungrown 2021-11-29 10:35:16 +08:00 1
@hutoer #1 python 的性能一时半会儿上不去,应该是供需两方都不太上心。
需求就不太强烈,几乎一半的场景都是 IO 密集型,甚至都不在乎所谓的性能和全局锁,剩下的几乎就是拿 python 来写“超脚本”,还有些是临时拿 python 写个原型验证一下算法和流程,打一开始就准备之后拿 C 之类的高性能语言重写。 供给侧的问题主要还是围绕在“动态类型”这个点上,动态类型不做 JIT 的话就快不起来,做了 JIT 的话性能基本就没啥短板了,pypy 已经证明了。无非这个 JIT 不容易做,和 C 接口犯冲,而 C 接口是 python 扩展性的基石,当然这个并不是没法做,只是优先级不高,进展慢。 其实真遇到需要运算速度的场景,直接把功能提取出来,用 C 或者 cython 写个模块不就行了。 |
16
wpyfawkes 2021-11-29 14:07:57 +08:00
|
17
ChrisFreeMan OP @wpyfawkes 上一个搞 switch 破解的最近被任地狱告到巨额赔款
|
18
volvo007 2021-11-29 17:49:56 +08:00
性能尽快提高一点就够了, 特性加太多很多老版本也不兼容
|