Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用单独文件中的自定义代码时出现问题_Python_File_Python 3.x_Python 3.5 - Fatal编程技术网

Python 使用单独文件中的自定义代码时出现问题

Python 使用单独文件中的自定义代码时出现问题,python,file,python-3.x,python-3.5,Python,File,Python 3.x,Python 3.5,我正准备开始一份工作(在C#NET中),有一些Python经验者优先。一两年前,我读了一些关于它的书,并拿起了另一本书(Dusty Phillips的Python3面向对象编程)。我在第一个代码示例中遇到了一个非常愚蠢的问题 我在一个单独的文件first_class.py中创建了我的第一个类。它保存在我的C:\Docs\continue Education\Object-Oriented Python\Chapter 2文件夹中: class MyFirstClass: pass 然后

我正准备开始一份工作(在C#NET中),有一些Python经验者优先。一两年前,我读了一些关于它的书,并拿起了另一本书(Dusty Phillips的Python3面向对象编程)。我在第一个代码示例中遇到了一个非常愚蠢的问题

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

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

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

SyntaxError:无效语法

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

接下来,我找到并将“当前目录”更改为上面列出的文件夹。使用和不使用
python
和/或
.py
的处理方法相同

我也尝试过使用
import
功能。这并没有给出任何错误,所以我认为它是有效的。我接着读了书中的下一条命令:

>>>a = MyFirstClass()
不幸的是,这导致了以下错误:

回溯(最近一次呼叫最后一次):
文件“”,第1行,在

NameError:未定义名称“MyFirstClass”


我肯定我只是错过了一些简单得可笑的东西。如果这是一个重复的文件,请务必标记掉。

当文本显示run
python-i/path/to/file
时,它希望您从shell而不是从python控制台中运行它

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

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

那你就可以给你的班级打电话了

a = MyFirstClass()

如果导入了
first\u class
,则可以访问
first\u class.MyFirstClass
。需要从命令行界面运行该命令。在Windows上,它是命令提示符。@PeterWood好极了!真管用!非常感谢。但是python-i第一类是什么呢?我很乐意使用/
导入
中的
,但我希望至少知道他给我的第一个命令的目标。@Fishstick我试过了,它告诉我python不是一个有效的命令。(很抱歉忘记了这个)@krillgar您的path变量中可能没有python。有很多资源可以在线编辑您的路径。当我这样做时,我得到一个错误,
“python”不能被识别为内部或外部命令、可操作程序或批处理文件。
我是否需要在python交互控制台所在的文件夹的cmd中运行该命令?
C:\python35
不能在您的系统路径中。您必须提供python解释器的完整路径。使用
C:\python35\python.exe
,或安装python的任何位置,而不是使用
python
。或者,您可以编辑系统路径变量以包含
python.exe
所包含的目录。确定,因此最好的办法是将cmd中的目录更改为python所在的位置,然后执行。谢谢
a = MyFirstClass()