Pycharm报错Expected type 'Readit', got 'str' instead的解决求助
问题修正与原因解释
错误原因
csv_to_list是实例方法,这类方法的第一个参数self必须接收Readit类的实例对象。- 你在
main.py中直接通过Readit.csv_to_list(file_name)调用方法,相当于把字符串file_name传给了需要Readit实例的self参数,因此触发类型不匹配的报错:Expected type 'Readit', got 'str' instead。
修正后的代码
Stuff.py
class Readit: def __init__(self, file_name): self.file_name = file_name def csv_to_list(self): from csv import DictReader with open(self.file_name) as a_file: csv_reader = DictReader(a_file) # 将CSV读取结果转为列表并返回,而非仅打印 return list(csv_reader)
main.py
from Stuff import Readit file_name = "test.csv" # 先创建Readit类的实例 reader = Readit(file_name) # 通过实例调用实例方法 test_result = reader.csv_to_list() print(test_result)
运行修正后的代码,会输出预期结果:
[{'a': '1', 'b': '2', 'c': '3'}, {'a': '4', 'b': '5', 'c': '6'}]
内容的提问来源于stack exchange,提问作者Artificer60
相关产品推荐
相关产品推荐

