数组尚未初始化

2024-05-16 02:23:43 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

class LangList(SGMLParser):
    is_span = ""
    langs = []
    def start_span(self, attrs):
        for key, value in attrs:
            if key == 'class' and value == 'lang':
                self.is_span = 1
    def end_span(self):
        self.is_span = ""
    def handle_data(self, text):
        if self.is_span:
            self.langs.append(text)

...

for key in my_repositories.repositories.keys():
    print key

    each_repository_content = urllib2.urlopen(my_repositories.repositories[key]).read()

    my_repository = LangList()
    my_repository.feed(each_repository_content)

    print my_repository.langs

结果如下:

forensic_tools
['Python']
google
['Python', 'Python']
ListServices
['Python', 'Python', 'Java', 'Perl']
win32-assembly-projects
['Python', 'Python', 'Java', 'Perl', 'C']
...

我正在编写一个从github成员获取存储库信息的应用程序。你知道吗

当我输出数组时,我发现数组不是初始的并且存在重复元素。如何解决这个问题?你知道吗


Tags: keyinselfforisvaluerepositorymy
1条回答
网友
1楼 · 发布于 2024-05-16 02:23:43

您的langs是一个类变量,而不是一个实例变量,因此它链接到类定义(因此在任何地方共享),而不是类的任何特定实例。你知道吗

你可能想要更像:

class LangsList(sgmllib.SGMLParser):
    def __init__(self, *args, **kwargs):
        super(LangsList, self).__init__(*args, **kwargs)
        self.is_span = ""
        self.langs = []

在初始化时创建实例变量。你知道吗

相关问题 更多 >