2015-10-01 4 views
2
def Interface(): 
    Number = input("Enter number: ") 

Interface() 
print(Number) 

Это небольшой упрощенный фрагмент моего кода, который производит:Python- Переменная Scope

 
Traceback (most recent call last): 
    File "C:/Users/Jack/Documents/Python/NumberToText.py", line 78, in 
    print(Number) 
NameError: name 'Number' is not defined 

Я underdstand это потому, что переменная определена в функции.

Что можно сделать, чтобы исправить это?

+0

Ну, на самом деле я видел несколько таких вопросов примерно три раза. И у большинства из них было много downvotes. Но у этого теперь есть три перелома и ни одна из нисходящих глаз. Может ли кто-нибудь сказать мне, почему? –

+1

Перхарпы из-за того, как я его попросил. @KevinGuan –

ответ

5

Это зависит от того, что вы хотите сделать.

Возможно делая Interface функцию возврата Number будет самым простым решением

def interface(): 
    number = input("Enter number: ") 
    return number 

print(interface()) 

Пожалуйста, смотрите this SO QA на тему правил области видимости в питона

Примечание: как вы можете видеть, я преобразовал имена от функции и переменной до нижнего регистра, в соответствии с директивой PEP-8

+0

Разумеется, вы выбрали ненужные скобки: 'return number'. 'return' не является функцией. – Matthias

+0

@ Матхиас упс да, спасибо – Pynchia

1

Поскольку переменная Number принадлежит только функции Interface(). Вы можете использовать return как это:

def Interface(): 
    number = int(input("Enter number: ")) 
    # remember use int() function if you wish user enter a number 

    return(number) 

print(Interface()) 

или использовать global так же, как это:

def Interface(): 
    global number 
    number = input("Enter number: ") 
    # remember use int() function if you wish user enter a number 

Interface() 
print(number) 

И только использовать global когда вам нужна переменная может использовать на везде или вам нужно функция возвращать другие вещи. Поскольку модификация глобальных переменных будет нарушать модульность.

Here - это документ о глобальной переменной.

Смежные вопросы