Есть ли способ связать функции с несколькими аргументами?Цепочки с несколькими аргументами
На данный момент я «цепи» моя операция в Python
так:
def createDirIfNecessary(directoryName):
if not os.path.exists(directoryName):
print 'Creating directory [%s]'% directoryName
os.makedirs(directoryName)
return directoryName
cakeName = 'lemonPie'
cookDate = '2011-01-04'
#yewww very ugly, big blob of function call ...
myDir = os.path.join(getDbDir('kitchenCupboardDir'),'cakes', cakeName)
file = os.path.join(createDirIfNecessary(myDir), cookDate + '.gz')
Например, в R
есть очень элегантный способ продолжить с помощью «трубы» %>%
оператора (оператор трубы также присутствует в Haskell
). Эквивалентно код:
cakeName = 'lemonPie'
cookDate = '2011-01-04'
file = getDbDir('kitchenCupboardDir') %>%
file.path('cakes', cakeName) %>%
createDirIfNecessary %>%
file.path(paste0(cookDate,'.gz'))
Здесь есть только четыре функции, может быть 6, 7 которым может быть легко прикованы. Я не могу использовать R, к сожалению, и мне интересно, если есть решение в python 2.7
Это вполне относятся к этой теме, но с дополнительными аргументами: Better way to call a chain of functions in python?