1

我正在尝试使用vaderin分析一些评论python。我做了一个Analyzer这样的课程:

class Analyzer:
    dataframe = None
    reviews = []
    
    # other data

    def __init__(self, brand):
        self.dataframe = pd.read_csv(brand) # using pandas
        reviews = self.dataframe['Reviews'].tolist()

    def analyze(self):
        # code for analyze...

    # more codes...

我像这样使用这个类main.py

from analyzer import Analyzer

brands = [
    'apple',
    'google',
    'huawei',
    'motorola',
    'nokia',
    'samsung',
    'sony',
    'xiaomi'
]

for brand in brands:
    analysis = Analyzer(brand)
    analysis.analyze()
    del analysis

现在的问题是:当品牌被分配给要分析的类时,较旧的评论仍保留在列表中。

例如:apple.csv 有 1000 条评论,google.csv 有 700 条评论。但是当 google 传递给分析器时,reviews列表长度不是 700,而是 1700。

4

1 回答 1

2

reviews属性是 forclass而不是object,因为您在类的主体中定义了它。在 的正文中
定义:reviews__init__

class Analyzer:
    
    # other data

    def __init__(self, brand):
        self.dataframe = pd.read_csv(brand) # using pandas
        self.reviews = self.dataframe['Reviews'].tolist()

    def analyze(self):
        # code for analyze...

    # more codes...
于 2021-10-08T08:56:02.840 回答