gpt4 book ai didi

python - 简单的 Python 类定义不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:06 25 4
gpt4 key购买 nike

在下面的代码中,编译器给出了赋值前引用的错误“Local variable shouldStoreData”。但我先分配它。

class MyHTMLParser(HTMLParser):
shouldStoreData = False
textPartDoc = ""
def handle_starttag(self, tag, attrs):
print "Encountered a start tag:", tag
if(tag == "title" or tag == "body"):
shouldStoreData = True
def handle_endtag(self, tag):
print "Encountered an end tag :", tag
def handle_data(self, data):
#print "Data is",data
#print "valus of storeData is:",shouldStoreData
if(shouldStoreData == True):
textPartDoc = textPartDoc + " " + data
shouldStoreData = False

我想在这里做的是,我只想在标签是标题或正文中的任何标签时存储数据。

最佳答案

第一个shouldStoreData 是类属性。 handle_starttaghandle_data 里面的都是局部变量。在 handle_data 中,您在分配变量之前对其进行测试。方法内的代码不知道类属性的存在,除非您明确地将其作为类/实例属性访问(例如,self.shouldStoreDataMyHTMLParser.shouldStoreData)。

如果你想让shouldStoreData成为一个实例属性,那么你需要写一个__init__方法并将它创建为一个实例属性:

def __init__(self):
self.shouldStoreData = False

然后在您的其他方法中将其称为 self.shouldStoreData

你应该阅读 the Python tutorial掌握 Python 中类、属性和方法的基础知识。

关于python - 简单的 Python 类定义不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12061175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com