Почему параметр 'number' не проходит? [Дубликат]

Вот сумасшедшая идея, внутри onDataChange, поместите ее внутри TextView с видимостью ушедшей textview.setVisiblity (Gone) или что-то еще, XD затем сделайте что-то вроде

textview.setText (dataSnapshot.getValue (String. class))

, а затем получить его с textview.getText (). toString ()

просто сумасшедшая простая идея.

26
задан user2113818 16 April 2013 в 18:55
поделиться

6 ответов

Это то, что на самом деле происходит:

global_list = []

def defineAList():
    local_list = ['1','2','3']
    print "For checking purposes: in defineAList, list is", local_list 
    return local_list 

def useTheList(passed_list):
    print "For checking purposes: in useTheList, list is", passed_list

def main():
    # returned list is ignored
    returned_list = defineAList()   

    # passed_list inside useTheList is set to global_list
    useTheList(global_list) 

main()

Это то, что вы хотите:

def defineAList():
    local_list = ['1','2','3']
    print "For checking purposes: in defineAList, list is", local_list 
    return local_list 

def useTheList(passed_list):
    print "For checking purposes: in useTheList, list is", passed_list

def main():
    # returned list is ignored
    returned_list = defineAList()   

    # passed_list inside useTheList is set to what is returned from defineAList
    useTheList(returned_list) 

main()

Вы даже можете пропустить временный returned_list и передать возвращаемое значение прямо к useTheList:

def main():
    # passed_list inside useTheList is set to what is returned from defineAList
    useTheList(defineAList()) 
29
ответ дан Pavel Anossov 28 August 2018 в 14:29
поделиться

Прочитайте концепцию пространства имен. Когда вы назначаете переменную в функции, вы назначаете ее только в пространстве имен этой функции. Но явно вы хотите использовать его между всеми функциями.

def defineAList():
    #list = ['1','2','3'] this creates a new list, named list in the current namespace.
    #same name, different list!

    list.extend['1', '2', '3', '4'] #this uses a method of the existing list, which is in an outer namespace
    print "For checking purposes: in defineAList, list is",list
    return list

В качестве альтернативы вы можете передать его:

def main():
    new_list = defineAList()
    useTheList(new_list)
2
ответ дан Benjamin 28 August 2018 в 14:29
поделиться

Ваше возвращение бесполезно, если вы его не назначили

list=defineAList()
3
ответ дан bobrobbob 28 August 2018 в 14:29
поделиться

return возвращает значение. Неважно, какое имя вы дали этой ценности. Вернувшись, он просто «передает это», чтобы что-то еще могло его использовать. Если вы хотите использовать его, вы должны захватить его извне:

lst = defineAList()
useTheList(lst)

Возврат list изнутри defineAList не означает, что «сделайте так, чтобы вся остальная часть программы могла использовать эта переменная ". Это означает «передать эту переменную и дать остальной программе шанс захватить ее и использовать». Вам нужно назначить это значение чему-либо вне функции, чтобы использовать его. Кроме того, из-за этого нет необходимости заранее определять свой список с помощью list = []. Внутри defineAList вы создаете новый список и возвращаете его; этот список не имеет отношения к тому, который вы определили с помощью list = [] в начале.

Кстати, я сменил имя переменной с list на lst. Не рекомендуется использовать list в качестве имени переменной, поскольку это уже имя встроенного типа Python. Если вы создадите собственную переменную с именем list, вы больше не сможете получить доступ к встроенному.

1
ответ дан BrenBarn 28 August 2018 в 14:29
поделиться

передать переменную из одной функции в качестве аргумента в другие функции, как это

определить функции, подобные этому

def function1():
global a
a=input("Enter any number\t")

def function2(argument):
print ("this is the entered number - ",argument)

вызывают функции, подобные этому

function1()
function2(a)
1
ответ дан Pb Studies 28 August 2018 в 14:29
поделиться

Вам просто не хватает одного критического шага. Вы должны явно передать возвращаемое значение во вторую функцию.

def main():
    l = defineAList()
    useTheList(l)

Альтернативно:

def main():
    useTheList(defineAList())

Или (хотя вы не должны этого делать! сначала, но глобалы просто вызывают у вас печаль в конечном итоге.):

l = []

def defineAList():
    global l
    l.extend(['1','2','3'])

def main():
    global l
    defineAList()
    useTheList(l)

Функция возвращает значение, но оно не создает символ в каком-либо глобальном пространстве имен, поскольку ваш код предполагает , Вы должны фактически захватить возвращаемое значение в области вызова, а затем использовать его для последующих операций.

8
ответ дан Silas Ray 28 August 2018 в 14:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: