【问题标题】:Why can't I print a returned value?为什么我不能打印返回值?
【发布时间】:2016-05-06 22:41:54
【问题描述】:

我已经编写了这段代码,我希望能够将我在函数中创建的字典用作另一个函数的参数,但我似乎无法自己打印它,或者将它用作参数因为“名称未定义”。 如何创建相同的输出(以字典为值的字典列表)但又能够在函数之外使用字典?

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

【问题讨论】:

  • 如果您觉得有帮助,请接受答案。

标签: python function dictionary return


【解决方案1】:

您必须分配返回值

names = get_name(example_input) 
print names

函数内部使用的变量names是局部变量,所以外部不可见。

【讨论】:

  • 或者干脆print get_name(example_input)
【解决方案2】:

你搞乱了 python 的变量范围。

变量总是有一个有效的范围。在函数内部声明的局部变量只在该函数内部有效。

在该示例中, a 是在外部定义的。在 myFunc() 内部还有一个 a 变量,它没有从外部引用 a 变量。这意味着在您的计算机内存中,a(外部)与 a(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?

【讨论】:

    猜你喜欢
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 2012-01-03
    • 2012-07-14
    • 2016-02-01
    • 2011-03-21
    相关资源
    最近更新 更多