Как мне выполнить функцию определенным образом после ее импорта в другой файл python?

#python #python-2.7

#python #python-2.7

Вопрос:

Это функция, которая возвращает список случайных чисел длиной от 0 до 9.

 import random

def makeList():
    y=[]
    n=int(raw_input("Enter number"))

    for x in range(0,n):
        x=random.randint(0,9)
        y.append(x)
    print y

def main():
    makeList()
if __name__ == '__main__':
    main()
  

Теперь я создаю другой файл python с именем main.py и импорт этой функции
— это код, который я написал в main.py . Имя файла — myFunc .

 from myFuncs import makeList
makeList()
  

Теперь
я хочу создать список (скажем, 10 случайных чисел.) что я должен написать внутри main.py файл для достижения этой цели ?

Комментарии:

1. myList = makeList() ?

2. в приведенной выше функции «makelist».. я хочу добавить 10 в raw_input, написав определенный код в main.py досье. как я мог этого добиться?

3. о, мои извинения. Я неправильно прочитал ваш вопрос. Вам нужно вернуть y вместо того, чтобы печатать его.

Ответ №1:

Изменение print y на return y в первом файле. (и print(makeList()) ниже main() )

В новом файле, new_list = makeList()

тогда new_list — это сгенерированный список.

Редактировать: более pythonic версия

Файл 1

 import random

def make_list(length=10):
    return [random.randint(0,9) for _ in range(length)]

def main():
    amount = int(raw_input("Enter number"))
    print(make_list(amount))

if __name__ == '__main__':
    main()
  

Файл 2

 from myFuncs import make_list

new_list = make_list()
print(new_list) # will be default 10
  

Если вы хотите сохранить входные данные в той же функции, это возможно, вот один из способов:

 def make_list(length=0):
    if not length:
        length= int(raw_input("Enter number"))    
    return [random.randint(0,9) for _ in range(length)]

def main():
    print(make_list())
  

Затем укажите make_list(10) во втором файле

Комментарии:

1. извините, если я не смог хорошо объяснить, но я хочу написать код в файле 2, который будет печатать 10 случайных чисел без необходимости ввода в консоль «10»

2. ваш код по-прежнему заставляет меня вводить 10, поскольку он просит меня «ввести число».. но я хочу, чтобы программа выполнялась сама, оставляя файл 1 в покое …. записывая что-то только в файл 2

3. вы все еще редактировали файл 1 rite? Оставьте файл 1 в покое… допустим, вам нужен файл 1 независимо .. и с файлом 2 вы должны иметь возможность печатать 10 случайных чисел .. возможно ли это?

4. @gurkha_dawg не удаляя raw_input строку из файла 1, он всегда будет запрашивать ее. Я не знаю способа отключить это без изменения этого файла

5. Функция makeList имеет n=int(raw_input(«Введите число»)) .. можем ли мы сказать, что n = 10 в файле 2