无法使用单独文件中的自定义代码

时间:2016-02-09 17:34:02

标签: python file python-3.x python-3.5

我正准备开始一份工作(在C#.NET中),有一些Python经验是有利的。我在一两年前做过一些关于它的阅读,然后拿起了另一本书(Dusty Phillips的Python 3面向对象编程)。我是第一个代码示例,并且有一个非常愚蠢的问题。

我在一个单独的文件first_class.py中创建了我的第一个类。它保存在我的C:\ Docs \ Continuing Education \ Object Oriented Python \ Chapter 2文件夹中:

class MyFirstClass:
    pass
然后他说“运行命令python -i first_class.py”。我打开了?Python 3.5控制台? (如果这就是所谓的),并把它放在那里。我不太希望它能够正常工作,因为它是从与文件不同的文件夹执行的。

我尝试再次执行命令,使用带引号和不带引号的文件的完全限定位置,但这些都不起作用。看到其他几个答案,我尝试了所有三个(没有文件夹,有和没有引号)但省略了.py扩展,但这不起作用。到目前为止,所有这些命令都给出了以下错误消息,错误指向单词“first_class”的结尾:

  

SyntaxError:语法无效

我尝试省略命令的python部分,因为我已经在Python程序中,但这也不起作用。

接下来,我找到this answer并将“当前目录”更改为我上面列出的文件夹。与python和/或.py相同的交易。

我也尝试使用import功能。这没有任何错误,所以我认为它有效。我接着写了书中的下一个命令:

>>>a = MyFirstClass()

不幸的是,这给出了以下错误:

  

追踪(最近的呼叫最后):
      在< module>

中的文件“< stdin>”,第1行      

NameError:名称'MyFirstClass'未定义

我确信我只是遗漏了一些非常简单的东西。如果这是重复的,请务必标记。

1 个答案:

答案 0 :(得分:2)

当文本说运行python -i /path/to/file时,它希望你从shell运行它,而不是从python控制台中运行。

-i标志是一种将文件或文件列表传递给python的方法,它将运行然后将您转储到交互式提示符中。文件中的任何代码都将位于全局命名空间中,就像您已将其键入交互式控制台一样。

打开cmd shell(或powershell)并运行:

python -i "C:\Docs\Continuing Education\Object Oriented Python\Chapter 2\first_class.py"

然后你应该可以打电话给你的班级

a = MyFirstClass()