导入一个类并将其用于另一个文件

时间:2017-06-10 13:24:30

标签: python class

我有3个档案。 find_threshold_l.py,simplelogicbuffer_l.py和test_find_threshold_l.py。

我需要将前两个文件导入到最后一个文件中。

这是simplelogicbuffer_l.py文件中的类:

class SimpleLogicBuffer:

    def __init__(self, on_threshold):
        self.on_threshold = on_threshold
        self.output_state = False

    def apply_input_voltage(self, value):
        self.output_state = value > self.on_threshold

    def is_on(self):
        return self.output_state

这里是find_threshold_l.py文件中的代码:

from simplelogicbuffer_l import SimpleLogicBuffer

def find_threshold(input_value, output_state):

    if output_state == True:
        while output_state == True:
            input_value -= 10
            if input_value > SimpleLogicBuffer.DUT_Logic_Buffer.on_threshold:
                continue
            else:
                SimpleLogicBuffer.DUT_Logic_Buffer.output_state = False
                input_value
                return input_value / 1000
                break
    else:
        while output_state == False:
            input_value += 10
            if input_value <= SimpleLogicBuffer.DUT_Logic_Buffer.on_threshold:
                continue
            else:
                SimpleLogicBuffer.DUT_Logic_Buffer.output_state = True
                input_value -= 10
                return input_value / 1000
                break

这是我在上一个文件中写的内容:

from simplelogicbuffer_l import SimpleLogicBuffer
from find_threshold_l import find_threshold

DUT_Logic_Buffer = SimpleLogicBuffer(12500)

print("The threshold voltage is {}V".format(find_threshold(11000, DUT_Logic_Buffer.is_on())))

但是当我运行此代码时,出现了错误。

它说:AttributeError: type object 'SimpleLogicBuffer' has no attribute 'DUT_Logic_Buffer'

我有点困惑。是否与print函数调用或其他原因有关?

感谢。

1 个答案:

答案 0 :(得分:0)

这会引发错误,因为您的DUT_Logic_Buffer_1仅在test_find_threshold_l中可用,并且您的SimpleLogicBuffer没有任何属性DUT_Logic_Buffer_1。您可以通过直接传递函数find_threshold中的值而不是SimpleLogicBuffer.DUT_Logic_Buffer_1.on_threshold来解决此错误,或者您可以直接执行:SimpleLogicBuffer(some_value).on_threshold