1 Вопрос: Как я могу использовать функции в разных классах

вопрос создан в Wed, May 8, 2019 12:00 AM

У меня есть несколько функций, которые я хотел бы использовать повторно. Это не мой точный пример, но он функционально похож.

Например, мы скажем, что у меня есть куча списков целых чисел Python, которые живут в разных классах, каждый из которых имеет свой собственный файл. ListClassA.py, ListClassB.py, ListClassC.py.

Я хочу получить средние значения для всех этих классов. Я мог бы сделать хорошую маленькую функцию в каждом отдельном классе, которая говорит, суммируйте список и делите его на длину. Что я хотел бы сделать, так это создать новый класс, который может выполнять все мои приятные маленькие функции списка (среднее, максимальное значение и т. Д.), Чтобы я мог просто вызвать listFunctions.average (list). Как я могу назвать свой новый класс из моих существующих классов?

    
1
  1. Вам вообще не нужен класс. average и соавт. могут быть просто функциями, определенными в модуле.
    2019-05-08 16: 27: 26Z
  2. Также рассмотрите возможность не использовать один файл на класс. В мире есть только один язык, который навязывает это пользователю - Java. Python нет, и это к лучшему. Он позволяет группировать классы и функции, принадлежащие друг другу, в один модуль и разбивать его, только если он становится громоздким.
    2019-05-08 16: 30: 03Z
  3. Если вам действительно нужно решение на основе классов, сделайте так, чтобы ваши классы наследовали от базового класса, который содержит разделяемые функции.
    2019-05-08 16: 31: 33Z
1 ответ                              1                         

Вы можете import нового класса

from new_file import listFunctions

Тогда вы можете использовать listFunctions.average(list)

    
0
2019-05-08 16: 33: 50Z
  1. Не используйте list в качестве имени в Python.
    2019-05-12 17: 54: 48Z
источник размещен Вот