2016-02-09 30 views
2

我准备好开始一项工作(使用C#.NET),并且拥有一些Python体验是一种优势。我在一两年前做了一些阅读,并拿起了另一本书(Dusty Phillips的Python 3面向对象编程)。我在第一个代码示例,并有一个非常愚蠢的问题。使用来自单独文件的自定义代码时遇到问题

我在一个单独的文件first_class.py中创建了我的第一个类。它保存在我的C:面向\文档\继续教育\对象的Python \第2章的文件夹:

class MyFirstClass: 
    pass 

然后他说“运行命令python -i first_class.py”。我打开了Python 3.5控制台? (如果这就是所谓的),并把它放在那里。我并不期望它的工作,因为它是从一个不同的文件夹执行,而不是文件所在。

我试着再次执行该命令,文件的完全合格的位置有和没有引号,但都没有那些工作。看到其他几个答案,我尝试了所有三个(没有文件夹,并且带和不带引号),但省略了.py扩展名,并且不起作用。所有这些命令到目前为止已经给出了以下错误消息指向单词“first_class”末的错误:我想省略命令的python一部分,因为我在Python我已经

SyntaxError: invalid syntax

程序,但这也行不通。

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

我也尝试使用import函数。这并没有给出任何错误,所以我认为它的工作。不幸的是

>>>a = MyFirstClass() 

,给了以下错误:我在书中继续到下一个命令

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

NameError: name 'MyFirstClass' is not defined

我敢肯定,我只是失去了一些东西可笑的简单。如果这是一个重复,通过一切手段,标志。

+0

如果导入'first_class'那么你可以访问'first_class .MyFirstClass'。 –

+0

您需要从命令行界面运行该命令。在Windows上它的命令提示符。 –

+0

@PeterWood非常棒!这样可行!谢谢。但是'python -i first_class'是什么?我会很乐意使用'from' /'import',但会很感激他至少知道他给我的第一个命令的目标。 – krillgar

回答

2

当文字说运行python -i /path/to/file它期望你从shell运行,而不是在python控制台。

-i标志是文件的文件或目录传递给蟒蛇将运行,然后甩了你进入交互提示的方式。文件中的任何代码都将位于全局命名空间中,就好像您已将其键入到交互式控制台中一样。

打开一个CMD壳(或PowerShell的),然后运行:

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

那么你应该能够调用你的类

a = MyFirstClass() 
+0

当我这样做,我得到的错误''python'不被识别为内部或外部命令,可操作的程序或批处理文件。'我需要运行在cmd从python交互式控制台居住的文件夹? – krillgar

+0

'C:\ python35'不能在你的系统路径中。你将不得不提供python解释器的完整路径。而不是'python',使用'C:\ python35 \ python.exe',或者你安装python的地方。 –

+0

或者,您可以编辑您的系统PATH变量以包含“python.exe”所在的目录。 –

相关问题