小编mdo*_*ong的帖子

我的正则表达式适用于 regex101,但不适用于 python?

所以我需要匹配被|. 所以,模式应该只是r"\|([^\|]*)\|",对吧?但是:

>>> pattern = r"\|([^\|]*)\|"
>>> re.match(pattern, "|test|")
<_sre.SRE_Match object at 0x10341dd50>
>>> re.match(pattern, "  |test|")
>>> re.match(pattern, "asdf|test|")
>>> re.match(pattern, "asdf|test|1234")
>>> re.match(pattern, "|test|1234")
<_sre.SRE_Match object at 0x10341df30>
Run Code Online (Sandbox Code Playgroud)

它只匹配以|?开头的字符串。它在 regex101 上工作得很好,如果重要的话,这是 python 2.7。我可能只是在这里做一些愚蠢的事情,所以任何帮助将不胜感激。谢谢!

python regex

6
推荐指数
2
解决办法
2102
查看次数

如何确保在子程序在装饰器中覆盖父方法之前始终调用父方法?

所以我有一个父类:

class Parent(Object):
    def function(self):
        do_something()
Run Code Online (Sandbox Code Playgroud)

许多儿童班:

class Child1(Parent):
    def function(self):
        do_something_else_1()

class Child2(Parent):
    def function(self):
        do_something_else_2()

...
Run Code Online (Sandbox Code Playgroud)

我想确保function()在孩子们之前总是调用父母function(),这样无论班级如何,每次调用function()也都会调用do_something().现在,我知道我可以这样做:

class Child1(Parent):
    def function(self):
        super(Child1, self).function()
        do_something_else_1()

class Child2(Parent):
    def function(self):
        super(Child2, self).function()
        do_something_else_2()

...
Run Code Online (Sandbox Code Playgroud)

但我宁愿不为每个子类做这个,因为这些子类是动态生成的,因为这些子类本身正在进一步扩展.相反,我想做一些看起来像的事情

class Child1(Parent):
    @call_parent
    def function(self):
        do_something_else_1()

class Child2(Parent):
    @call_parent
    def function(self):
        do_something_else_2()

...
Run Code Online (Sandbox Code Playgroud)

并写一个装饰器来完成同样的任务.

我有两个问题:

  1. 这甚至是个好主意吗?我是否按照预期的方式使用装饰器和功能覆盖?
  2. 我怎么去写这个装饰师?

python oop python-2.7

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

从Haskell中的元组列表中返回唯一元组

我有一个表格的元组列表[(A,B),(B,A),(D,C),(E,F),(C,D),(F,E)].如何返回仅列表[(A,B),(C,D),(E,F)]?我发现的唯一解决方案是删除重复的元组,我能想到的唯一解决方案是天真的O(n ^ 2)解决方案.有没有办法有效地做到这一点?

haskell

0
推荐指数
1
解决办法
549
查看次数

标签 统计

python ×2

haskell ×1

oop ×1

python-2.7 ×1

regex ×1