Python继承抽象类的方法调用后额外输出None的问题排查
问题原因
这个额外输出的None和.ipynb_checkpoints目录无关,核心来源是两处代码的逻辑叠加:
- 你定义的
read_data_type方法没有显式写return语句,Python中所有未显式声明返回值的函数/方法,执行结束后都会默认返回None。 - 测试代码中你调用了
print(g.read_data_type()),等于先执行方法内部逻辑(打印两个csv文件的完整路径),再把方法的返回值(也就是默认的None)打印出来,因此最后会多一行None输出。
你补充提到的
.ipynb_checkpoints目录只会导致方法内部多打印一行该目录的路径,不会单独产生末尾的None输出,你的现有输出里没有额外的目录路径,说明该目录要么不存在、要么你清理后已经生效,和当前的None问题没有关联。
修复方案
你可以根据自己的需求二选一:
- 如果你只是要打印路径不需要后续处理,直接调用方法即可,不需要外层套
print:
g = colorReader() g.read_data_type()
- 如果你需要拿到路径列表做后续操作,修改
read_data_type方法增加返回值:
def read_data_type(self): path_list = [] for files in os.listdir(self.path_to_types): full_path = os.path.join(self.path_to_types, files) print(full_path) path_list.append(full_path) return path_list
之后再用print(g.read_data_type())就不会输出无意义的None,而是打印你收集的路径列表。
内容的提问来源于stack exchange,提问作者zara kolagar
相关产品推荐
相关产品推荐

