python - 初学者的 python 类构造函数不带参数

标签 python class

我刚学 python,似乎犯了一个小错误。使用此代码,对 Patterns 的构造函数的使用会出现错误。

"cit_ref = 模式(patstring,3) 类型错误:此构造函数不带任何参数”

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)

最佳答案

您只需要缩进您的 __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 中,缩进与方括号/大括号在其他语言中的作用基本相同 - 它们分隔代码,因此您必须小心缩进。

关于python - 初学者的 python 类构造函数不带参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14866427/

相关文章:

java - 理解Java中的内部类

python - CNN 返回相同的分类结果(keras)

C#:封装例如集合

python - 在满足给定要求的同时从矩阵中抽取条目

python - 如何获取所有 pickle 数据

JavaScript:如何修复未正确分配属性值的实例

python - 理解 Python 类和对象

php - 在类中使用全局函数是不好的做法吗?

python - wxpython-plotting 中的 Matplotlib 中止

python - 如何从 SQLAlchemy 中的 id 池中获取每组的前 n 个结果?