Python 在read-in.txt文件中生成与regexp匹配的类

Python 在read-in.txt文件中生成与regexp匹配的类,python,class,Python,Class,我是python新手,在理解如何构建适当的类时遇到了一些困难。 我目前正在寻找一种方法,让我的类在txt文件中查找单词(或任何其他regexp),并打印这些单词(蓝色)及其行。现在,我的课做得不多,我不知道为什么 代码如下: import re class RegIter(): def __init__(self, path, regexp): with open (path) as f: self.text=f.read() se

我是python新手,在理解如何构建适当的类时遇到了一些困难。 我目前正在寻找一种方法,让我的类在txt文件中查找单词(或任何其他regexp),并打印这些单词(蓝色)及其行。现在,我的课做得不多,我不知道为什么

代码如下:

import re
class RegIter():
    def __init__(self, path, regexp):
        with open (path) as f:
            self.text=f.read()
        self.text=str(re.finditer("\w+|[^\w ]+",self.text))     

        self.wörter=list()                                  
        wörter=self.wörter                                 


        self.regexp=re.compile(self.text)


    def print(self):
        print(self.text)

    def makeBlue(text):
        return ("\033[34m"+str(text)+"\033[0m")



    def __str__(self):                          
        beginn=0
        for match in self.regexp.finditer(line):           
            start=match.start()
            end=match.end()
            print(line[beginn:start], end="")
            beginn=end
            return(line[start:end])                    
            print(self.makeBlue(line[start:end]), end="")


    def __iter__(self):
        self.c=0
        return self

    def __next__(self):
        if self.c<len(self.wörter):
            returner=self.wörter[self.c]
        else:
            raise StopIteration
            self.c+=1
        return returner

    def __len__(self):
        return len(self.wörter)

myobject=RegIter("Bsp1.txt", "\w+|[^\w ]+")
print(len(myobject))

for match in myobject:
    print(match)
    print(myobject)    
重新导入
类RegIter():
定义初始化(self、path、regexp):
打开(路径)作为f:
self.text=f.read()
self.text=str(re.finditer(“\w+|[^\w]+”,self.text))
self.wörter=list()
wörter=self.wörter
self.regexp=re.compile(self.text)
def打印(自):
打印(self.text)
def makeBlue(文本):
返回(“\033[34m”+str(文本)+”\033[0m”)
定义(自我):
贝金=0
对于self.regexp.finditer(第行)中的匹配:
start=match.start()
end=match.end()
打印(行[beginn:start],end=”“)
结束
返回(行[开始:结束])
打印(self.makeBlue(行[start:end]),end=”“)
定义(自我):
self.c=0
回归自我
定义下一个(自我):

如果未定义self.c
\uu str\uuu
中的变量
。您应该会收到一个错误。此外,
self.wörter
始终是一个空列表。您永远不会更改它。代码中还有许多其他错误。您不应该通过尝试编写复杂程序来开始学习Python。谢谢,我将尝试更正此错误rst。这是我正在参观的一门课程,我试图处理家庭作业。是的,你是对的,刚刚看到这里有len。有没有办法一步一步地构建这个类,以便尽早发现错误?就像这样,我点击run,看到什么都没有发生,并问自己为什么。你可以尝试为每个新创建的函数构建测试用例。一步一步地做泰普。