从另一个文件导入类 - 在哪里放置'导入'该课程要求的陈述

时间:2014-10-05 10:16:40

标签: python class python-import

我有两个Python文件,一个名为main.py,另一个名为second.pysecond.py中存在一个使用几个模块的类。

我是否可以从main.py中运行的代码实例化该类,因此允许我导入main.py中的模块?或者我是否必须在second.py中导入模块,该类存在于何处?

我问这个,因为我认为如果你将一个类实例化为一个代码在main.py中的对象是合乎逻辑的,那么这个类对象中的函数应该能够使用在main.py的开头。那么,通常,import module语句会去哪里? main.pysecond.py.

1 个答案:

答案 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需要工作的模块,这将是荒谬的。