从python 2.7中导入的问题(从思考计算机科学家教程)

时间:2015-01-24 00:20:23

标签: python python-2.7

我一直试图关注this tutorial for python。我正在为第3章做练习。在练习4中,我遇到了from import_test import *部分的问题:

~ from import_test import *

Traceback (most recent call last):
 File "pyshell#3", line 1, in <module>

   from import_test import *

File "import_test.py", line 1

Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32
             ^
SyntaxError: invalid syntax

这是我不断得到的语法,我不确定它会告诉我什么。

这是import_test.py

中的所有内容

Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. ~def cat_n_times(s, n): print s * n

我所犯的错误对我没有任何意义,因为我刚刚开始编写代码。而且我不知道如何使用这个网站,所以感谢我忍受了我的麻烦。

我想我确实将shell输出复制到文件中。我将尝试解决这个问题,看看它是否有效。再次感谢大家的帮助。

所以我没有工作,我一直得到相同的语法错误。语法箭头是否指向使用?

的python版本

1 个答案:

答案 0 :(得分:0)

在我看来,您无法理解包含python代码的文件与shell之间的区别。当你在shell并输入

from import_test import *

您实际上在说的是,您希望获取import_test.py的全部内容并将其加载到您的程序中,以便您可以使用import_test.py文件中包含的任何函数定义等。在你的程序中。

因此,import_test.py需要完全由有效的python代码组成。 import_test.py 的内容应

def cat_n_times(s, n):
    print s * n

因为import_test.py中有一堆额外的垃圾是无效的python代码,所以会出现语法错误。当shell尝试加载文件的内容并遇到语法错误时,会发生这种情况,这意味着您的文件中包含无效代码(在本例中为复制的垃圾)。

通过正确实现的导入将cat_n_times()函数成功加载到shell后,您应该能够从shell调用该函数。

~ cat_n_times("a", 25)

这将打印出“a”,连续25次连接。这对于python中的初学者来说是一种愚蠢的行为,因为特殊的运算符重载并不是Python的构建块,但这是另一个故事......