相关疑难解决方法(0)

Python中的switch语句的替换?

我想在Python中编写一个函数,它根据输入索引的值返回不同的固定值.

在其他语言中,我会使用switchcase声明,但Python似乎没有switch声明.在这种情况下,推荐的Python解决方案是什么?

python switch-statement

1719
推荐指数
32
解决办法
149万
查看次数

python中的switch case不起作用; 需要另一种模式

我需要一个代码的帮助,我想在python中实现switch case模式,所以就像一些教程所说,我可以使用字典,但这是我的问题:

  # type can be either create or update or .. 
  message = { 'create':msg(some_data),
              'update':msg(other_data)
              # can have more
            }

  return message(type)
Run Code Online (Sandbox Code Playgroud)

但它不适合我,因为some_data或other_data可以是None(如果没有则会引发错误)并且msg函数需要很简单(我不想在其中加入一些条件).

这里的问题是每次执行函数msg()以填充dict,这与开关案例模式不同,后者通常在其他编程语言中不执行代码,case除非它是匹配的.

还有另一种方法可以做到这一点,或者我只需要做,如果elif ...

更新: 感谢您的所有回复,但实际上它更像是这样

message = { 'create': "blabla %s" % msg(some_data),
            'update': "blabla %s" % msg(other_data)
            'delete': "blabla %s" % diff(other_data, some_data)
           }
Run Code Online (Sandbox Code Playgroud)

所以lambda在这里不起作用而且没有调用相同的函数,所以它更像是我需要的真正的开关案例,也许我必须考虑其他模式.

python design-patterns

4
推荐指数
2
解决办法
1182
查看次数

标签 统计

python ×2

design-patterns ×1

switch-statement ×1