Мой код выглядит следующим образом:Как я могу использовать функцию a_c_t_b()
def g_b():
items_in_bag = []
done=False
bugout_bag = 'Bug Out Bag'
while done == False:
item = input('What bags do you have? [Enter x to stop]')
items_in_bag.append(item)
if item == 'x':
done = True
items_in_bag.remove('x')
break
else:
continue
items_in_bag.append(bugout_bag)
print("Your bags\n")
print(items_in_bag)
return items_in_bag
def g_c():
coins_in_bag = []
done=False
while done == False:
coin_item = input('What coins do you have? [Enter x to stop]')
if coin_item == 'x':
done = True
break
else:
coins_in_bag.append(coin_item)
continue
print("Your coins\n")
print(coins_in_bag)
return coins_in_bag
def a_c_t_b(items_in_bag, coins_in_bag):
#print('Here are your coins:\n')
#g_c()
#print('Here are your bags:\n')
#print(items_in_bag)
print (items_in_bag,coins_in_bag)
return (items_in_bag,coins_in_bag)
def main():
g_b()
g_c()
a_c_t_b(items_in_bag,coins_in_bag)
main()
Однако, когда я запускаю этот код как: import myfile
Это дает мне ошибку:
File ".\myfile.py", line 51, i
a_c_t_b(items_in_bag,coins_in_bag)
NameError: global name 'items_in_bag' is not defined
Я просто пытаюсь вернуть значения items_in_bag,coins_in_bag
из их соответствующих functions
.
Спасибо
Что происходит с этими именами функций? В любом случае, вы просто вызываете функции и отбрасываете результат. Вы должны фактически сохранить ссылки на вещи, если хотите их повторно использовать. Именование локальной переменной в функции автоматически не имеет глобальных эффектов, как вы думаете. – TigerhawkT3
Возможно, вы воспользуетесь [официальным учебником Python] (https://docs.python.org/3.4/tutorial/index.html). – TigerhawkT3