我制作了一个使用名为Names
的类的示例文件。它有它的初始化函数和一些方法。当我创建类的实例时,它会检索实例的名字和姓氏。其他方法迎接实例并说出一条离开消息。我的问题是:如何在不运行模块的情况下将此文件导入Python shell?
我的文件名是classNames.py,位置是C:\ Users \ Darian \ Desktop \ Python_Programs \ Experimenting
以下是我的代码:
class Names(object):
#first function called when creating an instance of the class
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
#class method that greets the instance of the class.
def intro(self):
print "Hello {} {}!".format(self.first_name, self.last_name)
def departure(self):
print "Goodbye {} {}!".format(self.first_name, self.last_name)
但我收到错误:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import classNames.py
ImportError: No module named classNames.py
答案 0 :(得分:2)
我不清楚您的期望和您所看到的内容,但是您的模块的处理与math
和任何其他模块完全相同:
您只需导入它们即可。如果这是第一次发生,则获取并执行该文件。从外部可以获得运行它后在命名空间中留下的所有内容。
如果您的代码仅包含def
,class
语句和作业,则您不会注意到任何事情都会发生,因为,好吧,没有什么&#34;真的&#34;发生在这个时候。但是您可以使用类,函数和其他名称。
但是,如果您在顶层有print
个语句,则会发现它确实已执行。
如果你在Python路径中的任何地方都有这个文件(无论是显式的还是因为它在当前的工作目录中),你可以像
一样使用它import classNames
并使用其内容,如
n = classNames.Names("John", "Doe")
或者你做
from classNames import Names
n = Names("John", "Doe")
不要import classNames.py
,因为这会尝试从包py.py
导入模块classNames/
。