我有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
函数调用或其他原因有关?
感谢。
答案 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