Как вызвать функцию класса внутри метода @classmethod fuction [duplicate]

Переименовать столбцы данных и заменить формат

import pandas as pd

data = {'year':[2015,2011,2007,2003,1999,1996,1992,1987,1983,1979,1975],
        'team':['Australia','India','Australia','Australia','Australia','Sri Lanka','Pakistan','Australia','India','West Indies','West Indies'],
        }
df = pd.DataFrame(data)

#Rename Columns
df.rename(columns={'year':'Years of Win','team':'Winning Team'}, inplace=True)

#Replace format
df = df.columns.str.replace(' ', '_')
9
задан Gerard 7 May 2013 в 20:52
поделиться

2 ответа

Нет, вы не можете и не должны вызывать метод экземпляра из класса без экземпляра. Это было бы очень плохо. Вы можете, однако, вызвать метод класса из метода instance и instance. Опции

  1. делают get_param метод класса и фиксируют ссылки на него
  2. имеют __init__ вызов get_param, так как это метод экземпляра

Также вас может заинтересовать AttrDict , поскольку это похоже на то, что вы пытаетесь сделать.

5
ответ дан cmd 3 September 2018 в 14:51
поделиться

Вы можете вызвать метод экземпляра методом classmethod при его обработке как метод экземпляра и добавить класс в качестве экземпляра. ИМО это действительно плохая практика, но она решает вашу проблему.

@classmethod
def new(cls):
    params = cls.get_params(cls)
    return cls(**params)
0
ответ дан Sajmon 3 September 2018 в 14:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: