python TypeError: missing 1 required positional argument:'self'

Python 调用类的函数时报错如下:

TypeError: seperate_data() missing 1 required positional argument:'self'

报错原因:
train_data, test_data = DataCleaner.seperate_data()
DataCleaner 是个类,seperate_data() 是其中的方法,不能直接这样调用,需要先将类实例化。

代码改为:
train_data, test_data = DataCleaner().seperate_data()
注意:DataCleaner 是类,DataCleaner() 是类的对象。

代码原理:
调用 object 的函数(如下边的 A().t() )的时候会自动把自己作为第一个参数传进去,就是 self,而直接通过 类(就是不加括号的方式)调用函数不会,所以会报错。见下图:

 

解释:

A是 class 也就是类

A() 是object 也就是对象

A.t() 就是调用类的方法

A().t()就是调用对象的方法

以上,问题解决~
————————————————
版权声明:本文为CSDN博主「程序媛三妹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011675334/article/details/103383354

posted @ 2022-06-27 16:17  penny_happy007  阅读(2845)  评论(0)    收藏  举报