我有两个Python文件,一个名为main.py
,另一个名为second.py
。 second.py
中存在一个使用几个模块的类。
我是否可以从main.py
中运行的代码实例化该类,因此允许我导入main.py
中的模块?或者我是否必须在second.py
中导入模块,该类存在于何处?
我问这个,因为我认为如果你将一个类实例化为一个代码在main.py
中的对象是合乎逻辑的,那么这个类对象中的函数应该能够使用在main.py
的开头。那么,通常,import module
语句会去哪里? main.py
或second.py.
答案 0 :(得分:0)
以下是一个简单的反例:如果您依赖second.py
中仅在main.py
中导入的模块会怎么样?
<强> main.py
强>:
import time
import second
timer = second.Timer()
print timer.timestamp()
<强> second.py
强>:
class Timer(object):
def timestamp(self):
return time.strftime("%H:%M:%S")
<强>结果强>:
Traceback (most recent call last):
File "/Users/jonrsharpe/Documents/main.py", line 7, in <module>
print timer.timestamp()
File "/Users/jonrsharpe/Documents/second.py", line 4, in timestamp
return time.strftime("%H:%M:%S")
NameError: global name 'time' is not defined
file.py
中定义的类和函数使用该文件中定义的范围 - 他们需要工作的任何import
必须在file.py
中进行。否则,您将依赖导入file.py
的模块来导入其他file.py
需要工作的模块,这将是荒谬的。