所以我需要匹配被|. 所以,模式应该只是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。我可能只是在这里做一些愚蠢的事情,所以任何帮助将不胜感激。谢谢!
所以我有一个父类:
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)
并写一个装饰器来完成同样的任务.
我有两个问题:
我有一个表格的元组列表[(A,B),(B,A),(D,C),(E,F),(C,D),(F,E)].如何返回仅列表[(A,B),(C,D),(E,F)]?我发现的唯一解决方案是删除重复的元组,我能想到的唯一解决方案是天真的O(n ^ 2)解决方案.有没有办法有效地做到这一点?