有没有办法用多个参数链接函数?
目前我"链接" 我在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'))
这里只有4个功能,可以有6个,7个可以轻松链接。不幸的是我无法使用R,我想知道python 2.7
这与此主题有很大关系,但有进一步的论据: Better way to call a chain of functions in python?
答案 0 :(得分:0)
fn
包(see on GitHub包含>>
运算符,以及许多其他功能编程的好东西。您可以在python中进行函数式编程,即使(see also this answer)它并不是最佳方式。 Python可以"链"功能通过方法:
file = getDbDir(...).makePath(...).createDir(...).getPath(...)
这是连锁经营的一种方式。