您好我无法将类和变量导入其他python文件的python文件中。功能正常。
作为测试,我使用函数,类,指定的类实例和随机变量设置file1。然后我在file2中使用了各种方法:
1。 import file1
2。 来自file1 import * 错误:'名称未定义'
3。 来自file1导入变量,类,实例等 错误:无法导入名称类
4+。然后做一些其他事情...... 创建 init .py文件
或尝试设置目录:
导入操作系统 os.chdir( “/用户/ mardersteina /文档”)
不确定我做错了什么。函数导入很好,但无论我在查找什么,都无法用类和变量计算出来。
Untitled7:</ p>
def happy():
print "yo!"
class Tap(object):
def __init__(self,level):
self.level = level
level4 = Tap(4)
x = 14
Untitled9:
%run "/Users/mardersteina/Documents/Untitled9.py"
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/Users/mardersteina/Documents/Untitled9.py in <module>()
1 import Untitled7
2
----> 3 print Untitled7.x
4 """
5 from Untitled7 import Tap
AttributeError: 'module' object has no attribute 'x'
%run "/Users/mardersteina/Documents/Untitled9.py"
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/Users/mardersteina/Documents/Untitled9.py in <module>()
4 print Untitled7.x
5 """
----> 6 from Untitled7 import Tap
7
8 print Tap(4).level
ImportError: cannot import name Tap
%run "/Users/mardersteina/Documents/Untitled9.py"
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/Users/mardersteina/Documents/Untitled9.py in <module>()
11 from Untitled7 import *
12
---> 13 print level4.level
NameError: name 'level4' is not defined
答案 0 :(得分:3)
我可以看到您正在从打开的控制台运行该文件。
最有可能的问题是,您之前只有一个函数导入了Untitled7.py
。当你这样做时,Python会在sys.modules
中缓存该模块。
因此,如果您尝试再次在同一会话中导入它,您将从sys.modules
获取缓存版本,这就是导入它之后对Untitled7
所做的任何更改的原因不可见。
要解决此问题,您可以reload
模块 -
在Python 3.x中,使用importlib.reload()
重新加载模块(以接受新的更改),示例 -
import importlib
importlib.reload(Untitled7)
在Python 2.x中,使用reload()
方法 -
reload(Untitled7)
或者您也可以关闭python终端并重新打开它,它应该解决问题。