python的函数模式匹配

splarnektit的Python项目详细描述


Splarnektity提供了一种有限但有价值的功能模式 与Python、a la OCaml、Erlang、Haskell等匹配另一种方式 考虑到这一点:python列表上的模式匹配。

下面是Splarnektity使用的一个快速示例:

from splarnektity import FMatch

sexpr = ('person',
            ('name', 'john'),
            ('address', ('line1', '123 Townville'), ('zip', 54321)),
            ('age', 24),
            ('favorite foods', 'pizza', 'dorritos'),
        )

for x in sexpr[1:]:
    f = FMatch(x)
    V1, V2 = f.var(2)
    if f.when(('name', V1)):
        print 'name:          ', V1.v
    elif f.when(('address', ('line1', V1), ('zip', V2))) and V2.int:
        print 'address line1: ', V1.v
        print 'address zip:   ', V2.v
    elif f.when(('age', V1)) and V1.int:
        print 'age:           ', V1.v
    elif f.when(('favorite foods', V1.others)): # variable length matching
        print 'favorite foods:', V1.v

此示例的结果是:

name:           john
address line1:  123 Townville
address zip:    54321
age:            24
favorite foods: ('pizza', 'dorritos')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从同步请求中获取响应代码   具有深度复制的类中的Java oop getter/setter   java LDAP“简单”用户身份验证(JNDI Tomcat)不稳定?   java将Jenkins jnlp代理设置为通过API以编程方式使用WebSocket   java如何获取在servlet筛选器的静态块中启动的静态类的实例?   前两个数字的java charAt循环不能循环它   java在Spring引导执行器中是否有检查子服务运行状况的标准方法?   java我可以将jacksonmapped@JsonProperties推到“顶层”吗?   json JAVA:opencsv随机读取CSV单元格   无第三方应用程序的java捆绑包JRE   使用openidConnectClient功能的WAS Liberty中出现java无效cookie标头错误   java如何在Restful Web服务中从Http Post获取数组?   java如何读取安卓开发的JSON url?   如何在java IO中打开包含汉字的文件?