/ / I otrzymuję błąd „metody niezwiązanej” dla tego kodu poniżej - python-2.7

Otrzymuję komunikat "metoda niezwiązana" dla tego kodu poniżej - python-2.7

import pandas as pd
class main_class:
def __init__(self,data_frame):
self.data_frame = data_frame
def read_csv(self):
data_frame = pd.read_csv("outputfile.csv")
return data_frame
inc = main_class
print(inc.read_csv)

Uruchamiając ten kod, wystąpił błąd metody niezwiązanej

Odpowiedzi:

0 dla odpowiedzi № 1

To, co widzisz, nie jest błędem, to opis funkcji.

Istnieje kilka problemów z tym kodem.

  • Drukujesz funkcję zamiast wartości zwracanej przez funkcję. Innymi słowy, nigdy nie wywołujesz funkcji.

  • Nigdy nie tworzysz wystąpienia main_class.

Aby rozwiązać powyższe dwa problemy, musisz dodać ():

inc = main_class()
#               ^
print(inc.read_csv())
#                 ^

Teraz dostaniesz TypeError błąd, ponieważ main_class.__init__ wymaga kłótni.

  • main_class.__init__ przyjmuje argument i przechowuje go w self.data_frame które nie jest nigdzie używane. data_frame w read_csv nie jest związany z self.data_frame.

  • Na marginesie lepiej jest, aby klasy w podklasie języka Python 2 object:

    class main_class(object):
    ...
    

W dolnej linii możesz przeczytać samouczek języka Python, aby ponownie zobaczyć, jak działają podstawowe idee klas i metod.