Почему эта переменная не определена? Использование global
исправляет это (нужно также установить global serviceFile
), но я подумал, что вам нужно только указать global
, если вы изменяете глобальные переменные.
File "./test_menu.py", line 18, in generateTemplateList
serviceFilePath = templateDirectory + '/' + directory + '/' + serviceFile
NameError: name 'templateDirectory' is not defined
#!/usr/bin/env python3
import os
# Constants
templateDirectory = './.templates'
serviceFile = 'service.yml'
menu = []
templateDirectoryFolders = next(os.walk(templateDirectory))[1]
def generateTemplateList(templateDirectoryFolders):
templateListDirectories = []
for directory in templateDirectoryFolders:
serviceFilePath = templateDirectory + '/' + directory + '/' + serviceFile
if os.path.exists(serviceFilePath):
templateListDirectories.append(directory)
return templateListDirectories
templatesList = generateTemplateList(templateDirectoryFolders)
for directory in templatesList:
menu.append([directory, { "ticked": False }])
Я получаю аналогичные ошибки с функциями, например:
def foo():
return "hi"
def bar():
print(foo())
bar()
File "./test.py", line 6, in bar
print(foo())
NameError: name 'foo' is not defined