2017-02-17 2 views
0

Я должен был распечатать содержимое переменной, несмотря на то, что переменная существует внутри def. Вот как выглядит мой код:Как напечатать переменную, находящуюся в def-python

def count_words(): 
    var_one = "hello world" 

print count_words.var_one 

Вышеуказанное не работает. Я получаю следующую ошибку:

AttributeError: 'function' object has no attribute 'hello' 

Как мне обойти это?

+2

Вы не можете напечатать переменную в функции, так как она требует, чтобы * выполнить * функцию ... –

+1

Возможный дубликат [Python - вывод из функций?] (Http: // stackoverflow .com/вопросы/3052793/Python-выход-из-функция) –

ответ

2

Вам нужно что-то вернуть:

def count_words(): 
    var_one = "hello world" 
    return var_one 

print(count_words()) 

Теперь оператор печати вызывает функцию и печать, что значение возвращается.

1

Ответ Ника, вероятно, то, что вы хотите. В качестве примечания, вы можете использовать класс и доступ к его атрибут, как так:

class CountWords(): 
    var_one = "hello world" # this is the attribute 

count_words = CountWords() # instantiate the class 
print(count_words.var_one) # access the class' attribute 
1

Если вы хотите напечатать ситемы содержимое переменной, вы должны убедиться, что переменные выходы, и вы можете получить доступ. Согласно вашему коду, вы не можете делать то, что хотите, потому что оба условия не удовлетворены. Код, написанный в файле и код после выполнения, не является одним и тем же понятием. Код, написанный в файле, похож на кулинарную книгу, и когда компьютер выполняет код, это происходит, когда повар готовит что-то в соответствии с кулинарной книгой. Вы не можете жестко ингридиент (напечатать переменную) без приготовления повара (переменная не выходит из рабочей среды, выходит только в файл). И вы не можете жестко ингредиент, если повар не позволяет вам его жестко (у вас нет возможности распечатать переменную). Функция подобна рецепту, она рассказывает вам, как делать кулинарию, но она остается только в бумаге (файле), пока вы не будете готовить по рецепту. Затем вы можете распечатать переменную в соответствии с answer

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