Я пытаюсь установить новую переменную для ссылки на переменную внутри функции. Мой псевдокод выглядит так:
def myfunction():
a bunch of stuff that results in
myvariable = "Some Text"
Далее код, у меня есть это:
for something in somethinglist:
if something == iteminsomethinglist:
myfunction()
mynewvariable1 = myvariable
elif something == iteminsomethinglist:
myfunction()
mynewvariable2 = myvariable
else:
mynewvariable3 = myvariable
Я получаю сообщение об ошибке, в котором говорится что-то вроде: имя 'myvariable' не определено
Полагаю, я думал, что если я вызову функцию, она обрабатывает некоторые вещи, я передаю результат в переменную, а затем ссылаюсь на эту переменную в более уникальную переменную, она сохраняет ее ... но это не так.
Редактировать: Я прилагаю свой код, потому что он был недостаточно понятен в моем первом посте. В моей функции есть переменная, на которую я хотел сослаться (на самом деле их 2). Я прошу прощения за то, что не дал достаточно ясного объяснения. Хотя мой оригинальный код psuedo предложил этот вопрос достаточно хорошо. У меня также есть ощущение, что это не лучший подход. Возможен ли вызов 2-х функций? Мой код ниже:
def datetypedetector():
rows = arcpy.SearchCursor(fc)
dateList = []
for row in rows:
dateList.append(row.getValue("DATE_OBSERVATION").strftime('%m-%d-%Y'))
del row, rows
newList = sorted(list(set(dateList)))
dates = [datetime.strptime(d, "%m-%d-%Y") for d in newList]
date_ints = set([d.toordinal() for d in dates])
if len(date_ints) == 1:
DTYPE = "Single Date"
#print "Single Date"
elif max(date_ints) - min(date_ints) == len(date_ints) - 1:
DTYPE = "Range of Dates"
#print "Range of Dates"
else:
DTYPE = "Multiple Dates"
#print "Multiple Dates"
fcList = arcpy.ListFeatureClasses()
for fc in fcList:
if fc == "SO_SOIL_P" or fc == "AS_ECOSITE_P":
datetypedetector()
ssDate = newList
print fc + " = " + str(ssDate)
ssDatetype = DTYPE
print ssDatetype
elif fc == "VE_WEED_P":
datetypedetector()
vwDate = newList
print fc + " = " + str(vwDate)
vwDatetype = DTYPE
print vwDatetype
else:
datetypedetector()
vrDate = newList
print fc + " = " + str(vrDate)
vrDatetype = DTYPE
print vrDatetype