1

我只是在学习python,似乎犯了一个小错误。有了这段代码,使用构造函数来获取和报错。

“ cit_ref = Patterns(patstring, 3) TypeError: 这个构造函数不带参数”

import re

class Patterns:
    """A simple struct to hold our regex """
def __init__(self, pat, bodynumArg=2):
    self.pat = pat
    self.bodynum = bodynumArg
    self.reg = re.compile(self.pat, re.M+re.S)

patstring = r'<((us-)?references-cited)>(.*?)</\1>'
cit_ref = Patterns( patstring, 3)
4

1 回答 1

5

您只需要缩进您的__init__函数,使其位于class Patterns. 像这样:

import re

class Patterns:
    """A simple struct to hold our regex """
    def __init__(self, pat, bodynumArg=2):
        self.pat = pat
        self.bodynum = bodynumArg
        self.reg = re.compile(self.pat, re.M+re.S)

patstring = r'<((us-)?references-cited)>(.*?)</\1>'
cit_ref = Patterns( patstring, 3)

在 Python 中,缩进与其他语言中的方括号/大括号的作用基本相同——它们分隔代码,因此您必须小心缩进。

于 2013-02-14T01:39:20.433 回答