Я задумываюсь над этим вопросом некоторое время, но до сих пор не уверен в правильном ответе. Если где-то уже есть хороший ответ, извините за это.
Когда лучше использовать функцию или переменную, определенную где-то в модуле внутри класса, вместо того, чтобы определять ее внутри как метод / атрибут?
Пример:
PATH_TO_DIR = "abc\\def"
class Reader:
def __init__(self, file_name):
self.file_name = file_name
def read_file(self):
return pd.read_excel(os.path.join(PATH_TO_DIR, self.file_name))
или
class Reader:
PATH_TO_DIR = "abc\\def"
def __init__(self, file_name):
self.file_name = file_name
def read_file(self):
return pd.read_excel(os.path.join(self.PATH_TO_DIR, self.file_name))
Та же проблема беспокоит меня в отношении функции / метода, например, мы могли бы определить функцию read_file () и использовать ее внутри класса извне.
Мне кажется, что определение его как метода / атрибута имеет больше смысла, но я видел много кодов, в которых эти части определялись извне. программирования python - я знаю, что язык умеет обрабатывать много странных вещей, но это не так;)