Как подключить разные классы?

#python #class #oop

#python #класс #ооп

Вопрос:

Мне нужно подключить три класса, чтобы некоторые из них могли использовать методы других.

Здесь я показываю пример того, как работают классы. Как видно, данные вводятся по всему Data классу и обрабатываются Statistics Plotting классами и .

 class Data (object):   # This class read a file and creates a DataFrame object
    def __init__(input_data):
    def Tool:
      # [df managing operations]
      return df


class Statistics:      # This class use Data dataframe and manipulate it.
    def mean(df):
       return scalar

class Plotting:        # This class plot Data dataframe in function of Statistics outputs
    def with_colors (df, scalar):

  

Комментарии:

1. Пожалуйста, обновите свой вопрос кодом, который вы пробовали.

2. похоже, что они могут быть функциями с аргументами (например: colors=False ) в одном классе

3. Это полная программа @quamrana, она была бы нечитаемой

4. Да, функции классов используют множество аргументов, но все классы являются классами объектов. Ни один из них не является дочерним.

5. почему вы не можете просто иметь все функции в одном классе? все они работают с одним и тем же фреймом данных

Ответ №1:

Я не думаю Plotting Statistics и не сопоставляю хорошо классы или экземпляры. Они больше похожи на библиотеки функций. В противном случае вы создадите экземпляр single Plotting и single Statistics просто для вызова их методов для чего-то другого.

Похоже, вы сгруппировали свои служебные методы в классы и в итоге получили слишком много методов. Это просто проблема организации / раздела.

Если вы хотите, вы можете просто сделать их модулями, определить там функции, импортировать соответствующие функции в основную программу и передать этим функциям необходимые им данные в качестве аргументов.

Также похоже, что вы просто создаете объект, подобный фрейму данных, и добавляете к нему методы. И чтение данных откуда-то выглядит как просто еще одна служебная функция.

Хотя ничто не мешает вам делать эти вещи, включая наследование от dataframe для создания собственной расширенной версии, я думаю, вам лучше использовать объекты df как есть и передавать их служебным функциям.

Комментарии:

1. Вау, спасибо тебе большое @progmatico. Я думаю, что сделаю это.

Ответ №2:

Попробуйте передать Data объект в Statistics и в Plotting методы классов.