Форум сайта python.su
Задача: Есть функция в которой данные которые пользователь вводит с клавиатуры (строка), данная строка потом переделывается в список и вот это список уже будет использоваться много раз, то есть он необходим многим функциям.
Пример:
def Input():
c = raw_input('Enter data1,data2: ')
data = c.split(',')
return data
Офлайн
Откройте для себя передачу параметров в функцию.
Офлайн
как это нету ?
def Input():
global data
c = raw_input('Enter data1,data2: ')
data = c.split(',')
return data
def foo():
print data
mydata = Input()
print mydata,data
foo()
Офлайн
2 sp3:
Спасибо, то что нужно. Но раз это плохой стиль, как сделать нормально, у Лутца читал про фабрики при помощи их?
Офлайн
все очень просто
def Input():
c = raw_input('Enter data1,data2: ')
data = c.split(',')
return data
def foo(data):
'''This function prints the argument'''
print data
def main():
mydata = Input()
foo(mydata)
if __name__ == '__main__':
main()
import modulename
print modulename.foo.__doc__ # смотрим нашу строчку документации: что делает эта функция
modulename.foo('trololo')
Отредактировано (Сен. 12, 2010 17:42:35)
Офлайн
Не понял смысл примера. Функция main вызывает input дальше пользовательский ввод и передача объекта в функцию foo который его печатает. Но как сохранить значение data, если у меня 10 функции и всем им нужен список data, кроме как глобальной переменной ? Судя по твоему примеру каждый раз надо вызывать raw_input.
НО все равно огромное спасибо данный пример натолкнул на другую идею =)
Отредактировано (Сен. 12, 2010 18:55:27)
Офлайн
def Input():
c = raw_input('Enter data1,data2: ')
data = c.split(',')
return data
def foo(data):
'''This function prints the argument'''
print data
def foo1(data):
'''This function prints the argument'''
print 'foo1:',data
def foo2(data):
'''This function prints the argument'''
print 'foo2:',data
def main():
mydata = Input()
foo(mydata)
foo1(mydata)
foo2(mydata)
if __name__ == '__main__':
main()
Офлайн