的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)
答
我假设你想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提供的链接作为评论。
在这里出现了一些问题。
- 您实际上没有在可以使用的范围上定义变量“name”。
- 当您可能不想传入任何变量时,您正在传递函数Read()。
- 我想你想的raw_input(),而不是输入()(这仅适用于蟒蛇2.x的,因为我没有看到3.x的标签)
你需要做的是指定什么变量“name”是Read()函数的返回值。
比如下面:
def WriteLine(s):
print(s)
def Read():
r = raw_input()
return r
name = Read()
WriteLine(name)
'name'在里面'Read'功能and'name'具有的功能之外没有 – Arman
意义定义您尚未定义的名字“在你的代码比内的任意位置其他一个函数。我想你想要的是将名称从Read变量中移除。 这样: DEF阅读(): 然后一个变量分配给您的电话,所以不是读(名称),这将是: 名=阅读() – disflux
[您可能需要阅读了关于Python函数](http://www.tutorialspoint.com/python/python_functions.htm),特别是可变范围:) – Erica