Python: нужна помощь о функциях - PullRequest
0 голосов
/ 29 апреля 2020
list = [1]
list2 =[1]

def all():
 num = 3
  def first(new_num): #new_num = new_index  = 3
   if num not in list:
    list.append(num)
    new_index = list.index(num)
    first(new_index) #new_index = num = 3
   else:
    second(new_num) #assign new_num to the function second()
  def second(item): #item = new_num in function first(new_num)
    print("hello" ,  item)
first()

all ()

в самом низу есть all (), но я не знаю, почему его нет внутри для этого

1 Ответ

2 голосов
/ 29 апреля 2020

Это проблема с областью действия.

Функция first находится внутри функции all, вы не можете вызвать first, если она находится внутри all извне all. То, что вы должны сделать, это позвонить all и получить вызов внутри all, который запускается first следующим образом:

list = [1]
list2 =[1]

def all():
    num = 3
    def first(new_num): #new_num = new_index  = 3
        if num not in list:
            list.append(num)
            new_index = list.index(num)
            first(new_index) #new_index = num = 3
        else:
            second(new_num) #assign new_num to the function second()
    def second(item): #item = new_num in function first(new_num)
        print("hello" ,  item)
    first(num)
all()

Кроме того, ваш отступ немного беспорядок, вы должны использовать 4 пробела для отступа на pep8 .

...