为什么我不能打印返回的值?

时间:2016-01-29 08:55:36

标签: python function dictionary return

我已经编写了这段代码,我希望能够使用我在函数中创建的字典作为另一个函数的参数,但我似乎无法将其打印在其上#s; s拥有,或将其用作参数,因为名称未定义'。 如何创建相同的输出(带字典作为值的字典列表),还能够在函数外部使用字典?

def get_name(string_input):
    l = [line.split('is connected to') for i, line in enumerate(string_input.split('.')) if i % 2 == 0]
    names = {name[0]:{} for name in l}
    return names

print get_name(example_input) 
print names

2 个答案:

答案 0 :(得分:3)

您必须指定返回值

names = get_name(example_input) 
print names

函数内部使用的变量names是本地的,因此在外部不可见。

答案 1 :(得分:0)

你正在搞乱python的变量范围。

变量始终具有有效范围。在函数内声明的局部变量在该函数内部才有效。

在该示例中,a在外部定义。在myFunc()里面还有一个变量,它没有引用外部的变量。这意味着在你的计算机内存中(外部)有一个不同于(在myFunc内部)内存的不同部分。

a = "A String"
def myFunc(str):
    a = str
    return a

print myFunc("Hello World!") // Hello World!
print a // A String

有关python中变量作用域的更多信息:

Short Description of the Scoping Rules?