Я написал функцию, и я хотел бы вернуть переменную из этой функции, но я получаю сообщение об ошибкеВозвращаясь функция переменной ошибки ~ локальная переменная «пользователь» обращаться до присвоения ~, Python
локальная переменная ' пользователь»обращаться до присвоения
Моя функция:
def txtelm():
# Updates date field to the current date
if textElement.name == "DATE":
textElement.text = strftime("%y %m %d")
if textElement.name == "CHECK":
textElement.text = "AB"
# First code block replaces the "Drawn" title block initials
if docauthor == "Mike" and textElement.name == "DRAWN":
textElement.text = "MM"
user = "mm"
#print user
elif docauthor == "Amy" and textElement.name == "DRAWN":
textElement.text = "AB"
user = "ab"
#print user
elif docauthor == "Ian" and textElement.name == "DRAWN":
textElement.text = "IB"
user = "ib"
elif docauthor == "Chris" and textElement.name == "DRAWN":
textElement.text = "CM"
user = "cm"
elif docauthor == "Cynthia" and textElement.name == "DRAWN":
textElement.text = "CC"
user = "cc"
return user
Дальше мой код, я вызываю функцию:
for textElement in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
txtelm()
user = txtelm()
if textElement.name == "PATH":
textElement.text = outloc + "\\" + sitename.replace(" ", "_") + "_" + trunc + strftime("%d%b%y") + "_" + user
Я установил некоторые печатные сообщения для печати «пользователь», но, похоже, ничего не возвращает. Прежде чем я создал функцию, у меня был код внутри нее, жестко закодированный под циклом «for», и это сработало ... поэтому я не понимаю, почему он не возвращает никаких значений.
Любые предложения?
Немного легче читать форматирование текста: 'textElement.text = os.path.join (outloc,"% s_% s% s_% s "% (sitename.replace (" "," _ "), trunc, strftime («% d% b% y»), пользователь)) ' –
Спасибо за это предложение Джейсон. – Mike