Я знаю, что с классами Python вы можете наследовать от других классов, как это:Является ли наследование функциями в Python?
class A(object):
pass
class B(A):
pass
Однако, это возможно с функциями? Например, в файле Fab у меня в настоящее время есть две функции, которые выполняют одни и те же вещи. Мне нужна базовая функция, поэтому я могу остановить дублирование настроек.
Например:
def environment_base():
#settings for both environment1 and environment2 here
def environment1():
pass
def environment1():
pass
Я знаю, это то, что классы для но ткань не дает мне возможность использовать классы для настройки.
Это мой фактический прецедент. У меня есть ткань файл, который имеет две среды i..e fab environment1 command
или fab environment2 command
def environment1():
settings = get_settings(local_path)
env.git_key = settings['GIT_KEY']
env.hosts = get_hosts_list(local_path)
def environment1():
settings = get_settings(local_path)
env.hosts = get_hosts_list(local_path)
Как вы можете видеть обе функции имеют некоторые из тех же самых условиях и не отвечает «Не повторяйте себе» принцип.
Вы должны явно вызвать 'environment_base'. Насколько я знаю, то, что вы описываете, не существует ни на одном языке на основе OO (или даже в теории OO). –
Без более конкретного примера трудно дать совет. Обратите внимание, что, хотя вы не можете выполнять функции «подкласса», но вы можете создавать классы '__call__'able. – jonrsharpe