У меня есть программа, которая определяет функцию verboseprint
либо печати или не печатать на экране на основе булево:Функция, которая определяет функцию в Python
# define verboseprint based on whether we're running in verbose mode or not
if in_verbose_mode:
def verboseprint (*args):
for arg in args:
print arg,
print
print "Done defining verbose print."
else:
# if we're not in verbosemode, do nothing
verboseprint = lambda *a: None
Моя программа использует несколько файлов, и я бы как использовать это определение verboseprint во всех из них. Все файлы будут переданы in_verbose_mode
boolean. Я знаю, что могу просто определить verboseprint
сам по себе в файле, а затем импортировать его во все мои другие файлы, но мне нужно, чтобы определение функции могло быть объявлено двумя разными способами на основе логического.
Итак, в резюме: Мне нужна функция, которая может объявить другую функцию двумя разными способами, что я могу затем импортировать в несколько файлов.
Любая помощь будет оценена по достоинству.
Вы хотите объявить одну функцию и использовать его везде по-разному, это то, как работает полиморфизм: http://stackoverflow.com/questions/1031273/what-is-polymorphism-what-is-it- для-и-хау-это-это используется. И обычно вы не определяете функцию в python таким образом. –
Я не понимаю, что вы подразумеваете под «Все файлы будут переданы' in_verbose_mode' boolean. " вы имеете в виду, что у каждого файла есть собственная переменная? –