的Python不接受功能的可调

问题描述:

每当我运行的代码,Python附带了错误消息:的Python不接受功能的可调

回溯(最近通话最后一个): 文件“” /Users/jim/Desktop/Python/TextWindow.py ” 7号线,在模块 阅读(名称)

NameError:名‘name’没有定义

def Writeline(string): 
    print(string) 

def Read(name): 
    name = input() 

Read(name) 

Writeline(name) 
+0

'name'在里面'Read'功能and'name'具有的功能之外没有 – Arman

+0

意义定义您尚未定义的名字“在你的代码比内的任意位置其他一个函数。我想你想要的是将名称从Read变量中移除。 这样: DEF阅读(): 然后一个变量分配给您的电话,所以不是读(名称),这将是: 名=阅读() – disflux

+6

[您可能需要阅读了关于Python函数](http://www.tutorialspoint.com/python/python_functions.htm),特别是可变范围:) – Erica

我假设你想Read在一个字符串,然后你会传递给阅读Writeline se,Read必须返回一个值。 Python中的字符串是不可改变的,所以你必须回到你读访问它的功能外字符串:

def Writeline(string): 
    print(string) 

def Read(): 
    return input() 

name = Read() 
Writeline(name) 

编辑

请记住,input()确实在蟒蛇2和3中不同的东西Python 3,它做你看起来想要的。在Python 2中,raw_input()是读入输入的函数。 input()将尝试评估您键入的任何Python代码行。

首先,通过@Erica提供的链接作为评论。

在这里出现了一些问题。

  1. 您实际上没有在可以使用的范围上定义变量“name”。
  2. 当您可能不想传入任何变量时,您正在传递函数Read()。
  3. 我想你想的raw_input(),而不是输入()(这仅适用于蟒蛇2.x的,因为我没有看到3.x的标签)

你需要做的是指定什么变量“name”是Read()函数的返回值。

比如下面:

def WriteLine(s): 
    print(s) 

def Read(): 
    r = raw_input() 
    return r 

name = Read() 
WriteLine(name)