2016-07-19 14 views
-5

so hier Aufruf ist mein Problem, ich eine Funktion in Python zu erstellen Ich versuche, die hier auf eine andere Funktion bezieht, ist mein Code:eine Funktion innerhalb einer Funktion mit Python

def movies_creation(): 
    for director in directors: 
     for i in range((int(director.age)-20)/random.randint(1,5)): 
      movie = MOVIE([], random.randint(1960, 2015), 
      random.choice(movie_genre), 0, [], director, 0, 0, 0) 

      movie_title_type = random.randint(1,40) 

      if movie_title_type == 1: 
       title_colors() 
    director.filmography.append(movie) 

def title_colors(): 
    movie.name.append(random.choice(title_colors)) 

Nun, wenn ich versuche zu laufen dieser Code ich diese Fehlermeldung:

 
Traceback (most recent call last): 
    File "C:\Users\Patrick\Pictures\Python\TS\gui.py", line 7, in 
    movies_creation() 
    File "C:\Users\Patrick\Pictures\Python\TS\Movies.py", line 401, in movies_creation 
    title_colors() 
    File "C:\Users\Patrick\Pictures\Python\TS\Movies.py", line 343, in title_colors 
    movie.name.append(random.choice(title_colors)) NameError: global name 'movie' is not defined 

nicht sicher, was ich falsch ...

+3

Bitte lesen Sie die Fehlermeldung: 'NameError: globaler Name 'Film' ist nicht definiert. Wahrscheinlich möchtest du "Film" als Parameter übergeben. – Felk

+2

Die Variable "Film" wird nicht zwischen den Funktionen geteilt. Sie sollten es manuell an title_colors übergeben. Sie sollten die Dokumentation über "Bereiche" in Python lesen. – Selcuk

+1

Was ist unklar in der Nachricht, die Sie erhalten haben? –

Antwort

0

Problem in Ihrem Code tue, ist, dass Sie die movie vari passieren sollte zum Verfahren in der Lage title_colors:

title_colors(movie) 

def title_colors(m): 
    m.name.append(random.choice(title_colors)) 
0

Danke für Ihre Hilfe, war mein Problem meine Funktion den gleichen Namen als eine Liste in meinem Programm hatte. änderte den Namen und alles funktioniert jetzt gut

Verwandte Themen