相关疑难解决方法(0)

Python中的switch语句的替换?

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

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

python switch-statement

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

由于Python没有switch语句,我应该使用什么?

可能重复:
python中switch语句的替换?

我在Python中创建一个基于控制台的小应用程序,我想使用Switch语句来处理用户对菜单选择的选择.

你有什么建议我用的.谢谢!

python switch-statement

10
推荐指数
3
解决办法
5389
查看次数

基于字典的开关式语句与动作

我对Python比较陌生,想知道我是在重新发明轮子还是用非pythonic方式做事 - 读错了.

我正在重写一些最初用Lua编写的解析器.有一个函数接受来自导入表及其值的字段名称,对值执行一些操作并将其存储在适当的键名下的目标字典中.

在原始代码中,它通过类似开关的语句解决,匿名函数作为操作.Python代码如下所示:

class TransformTable:
    target_dict = {}
    ...
    def mapfield(self, fieldname, value):
        try:
            {
                'productid': self.fn_prodid,
                'name': self.fn_name,
                'description': self.fn_desc,
                ...
            }[fieldname](value)
        except KeyError:
            sys.stderr.write('Unknown key !\n')

    def fn_name(val):
        validity_check(val)
        target_dict['Product'] = val.strip().capitalize()
    ...
Run Code Online (Sandbox Code Playgroud)

当然,每个"字段处理程序"函数都会执行不同的操作并存储在target_dict中的不同键中.因为Python不支持带语句的匿名函数(或者我错过了什么?)函数必须单独编写,这些函数的代码可读性较低且不必要地复杂.

任何提示如何以更优雅和更pythonic的方式执行此类任务是值得赞赏的.

谢谢

大卫

python lua design-patterns

5
推荐指数
1
解决办法
325
查看次数

for循环中的Python默认变量

我想知道Python是否具有在for循环中将数据存储在默认变量中的概念.

例如,在perl中,等价物如下

foreach (@some_array) {
    print $_
}
Run Code Online (Sandbox Code Playgroud)

谢谢,德里克

python variables for-loop

3
推荐指数
1
解决办法
1302
查看次数