Python类声明"位置参数"错误

Mat*_*ene 1 python class declaration pandas

我正在试验大熊猫.我正在尝试创建一个表示我想要使用的数据的简单对象.为此,我编写了下面的代码来创建一个对象,但我得到了:

TypeError:test_df()缺少1个必需的位置参数:'self

在第13行.我无法弄清楚我做错了什么.也许是关于我没有得到的类声明的概念.任何帮助深表感谢.

import pandas as pd

class ICBC():
   def __init__(self, name, path):
       self.name = name
       self.df = pd.read_csv(path)

   def test_df(self):
       print(self.df.info)


mov = ICBC("matisalimba3","z:\devs\py\movimientos.csv")
ICBC.test_df() <- This is line 13
Run Code Online (Sandbox Code Playgroud)

Aar*_*sen 5

一旦创建了类的实例(使用ICBC(...)),就需要test_df实例上调用方法,而不是类本身.

更改您的代码,以便mov您调用test_df():

import pandas as pd

class ICBC():
   def __init__(self, name, path):
       self.name = name
       self.df = pd.read_csv(path)

   def test_df(self):
       print(self.df.info)


mov = ICBC("matisalimba3","z:\devs\py\movimientos.csv")
mov.test_df()
Run Code Online (Sandbox Code Playgroud)

为了进一步说明错误告诉您的内容:当您在Python中调用实例上的方法时,self会自动传递参数.但是,ICBC不是实例,所以self不通过.这会导致您看到的参数错误.

此行为意味着您也可以执行此操作来调用该方法:

ICBC.test_df(mov)
Run Code Online (Sandbox Code Playgroud)

然而,没有人这样做:它不被认为是好的做法,因为它使代码更长,更难阅读.