Как мне это сделать? Могу ли я сделать это?
def aFunction(argument):
def testSomething():
if thisValue == 'whatItShouldBe':
return True
else:
return False
if argument == 'theRightValue': # this is actually a switch using elif's in my code
testSomething()
else:
return False
def aModuleEntryPoint():
if aFunction(theRightValue) == True:
doMoreStuff()
else:
complain()
aModuleEntryPoint()
aModuleEntryPoint()
необходимо сначала убедиться, что условие истинно, прежде чем оно начнет что-то делать. Из-за инкапсуляции aModuleEntryPoint
не знает, как проверить условие, но aFunction()
имеет подфункцию под названием testSomething()
, которая знает, как проверить условие. aModuleEntryPoint()
звонки aFunction(theRightValue)
.
Поскольку theRightValue
было передано aFunction()
в качестве аргумента, aFunction()
вызывает testSomething()
. testSomething()
выполняет логический тест и возвращает либо True
, либо False
.
Мне нужно, чтобы aModuleEntryPoint()
знал, что решил testSomething()
. Я не хочу, чтобы aModuleEntryPoint()
знал что-либо о том, как testSomething()
пришел к своему выводу.
На самом деле было бы достижением опубликовать мой фактический источник при удалении других функций и чего-то еще, поэтому мне пришлось настроить общую суть так.