class 的新实例包含提供给旧实例的旧数据
New instance of a class contains older data given to an older instance
我正在尝试使用 python
中的 vader
分析一些评论。我做了一个 Analyzer
class 像这样:
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
中使用了这个 class 像这样:
from analyzer import Analyzer
brands = [
'apple',
'google',
'huawei',
'motorola',
'nokia',
'samsung',
'sony',
'xiaomi'
]
for brand in brands:
analysis = Analyzer(brand)
analysis.analyze()
del analysis
现在的问题是:
当品牌被提供给 class 进行分析时,较旧的评论将保留在列表中。
例如:
apple.csv 有 1000 条评论,google.csv 有 700 条评论。但是当 google 传递给分析器时,reviews
列表长度不是 700,而是 1700。
reviews
属性用于 class
而不是 object
,因为您在 class.
的正文中定义了它
在 __init__
的正文中定义 reviews
:
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...
我正在尝试使用 python
中的 vader
分析一些评论。我做了一个 Analyzer
class 像这样:
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
中使用了这个 class 像这样:
from analyzer import Analyzer
brands = [
'apple',
'google',
'huawei',
'motorola',
'nokia',
'samsung',
'sony',
'xiaomi'
]
for brand in brands:
analysis = Analyzer(brand)
analysis.analyze()
del analysis
现在的问题是: 当品牌被提供给 class 进行分析时,较旧的评论将保留在列表中。
例如:
apple.csv 有 1000 条评论,google.csv 有 700 条评论。但是当 google 传递给分析器时,reviews
列表长度不是 700,而是 1700。
reviews
属性用于 class
而不是 object
,因为您在 class.
的正文中定义了它
在 __init__
的正文中定义 reviews
:
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...