Python中Swithch Case语法实现

Posted jsplyy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中Swithch Case语法实现相关的知识,希望对你有一定的参考价值。

而python本身没有switch语句,解决方法有以下3种:
A.使用dictionary
values = {
value1: do_some_stuff1,
value2: do_some_stuff2,
...
valueN: do_some_stuffN,
}
values.get(var, do_default_stuff)()

B.使用lambda
result = {
‘a‘: lambda x: x * 5,
‘b‘: lambda x: x + 7,
‘c‘: lambda x: x - 2
}[value](x)


C.Brian Beck提供了一个类 switch 来实现其他语言中switch的功能
# This class provides the functionality we want. You only need to look at
# this if you want to know how this works. It only needs to be defined
# once, no need to muck around with its internals.
class switch(object):
    def __init__(self, value):
        self.value = value
        self.fall = False
    def __iter__(self):
        """Return the match method once, then stop"""
        yield self.match
        raise StopIteration
    def match(self, *args):
        """Indicate whether or not to enter a case suite"""
        if self.fall or not args:
            return True
        elif self.value in args: # changed for v1.5, see below
            self.fall = True
            return True
        else:
            return False
# The following example is pretty much the exact use-case of a dictionary,
# but is included for its simplicity. Note that you can include statements
# in each suite.
v = ‘ten‘
for case in switch(v):
    if case(‘one‘):
        print 1
        break
    if case(‘two‘):
        print 2
        break
    if case(‘ten‘):
        print 10
        break
    if case(‘eleven‘):
        print 11
        break
    if case(): # default, could also just omit condition or ‘if True‘
        print "something else!"
        # No need to break here, it‘ll stop anyway

  

以上是关于Python中Swithch Case语法实现的主要内容,如果未能解决你的问题,请参考以下文章

Python 中 switch/case 的语法等价物是啥? [复制]

最近发布的 Python 3.10 中的 Match-Case 其实没有那么简单

verilog语法,有关case语句

PythonStudy——Python 中Switch-Case 结构的实现

Python里怎么实现switch case

JavaScript核心语法学习部分