在python中导入函数后保存函数返回的值

时间:2017-05-15 09:56:10

标签: python function

我从python中的文件调用了一个函数(carlabels),并希望将函数返回的值作为输入,以便在代码的后面部分中使用。我能够将函数导入新的python文件,并能够打印返回的值。如何将这些值保存在文本文件中以进一步使用它们?

#detected_cars.py
import cartracker                       #this code is for detecting the cars
import cartracker2                      #slight modification on cartracker    
width = 3296                            #dimention to capture  
height = 2472                           #dimention to capture
gray = cv2.CreateImage(sz, 8, 1)        #create an image of specified dimention
new_fc = 1

def carlabels(carinfo):
    labels=[]
    r=60
    for (tag,xy,orient,err,wl,sq) in carinfo:
        xy2= (int(xy[0]+r*math.sin(math.radians(orient))),int(xy[1]-r*math.cos(math.radians(orient))))
        labels.append((xy,xy2,str(tag)))
    return labels

if new_fc:
    carinfo = cartracker.Analyze_captured_near_gate(gray, area=[width, height], th_factor=0.5, single_edge=0)
else:
    carinfo = cartracker2.Analyze_captured_near_gate(gray, area=[width, height], th_factor=0.5, single_edge=0)

labels = carlabels(carinfo)

当我表演时:

print labels #i can see the id's of the car displayed.

但是,当我尝试导入函数返回的值时,如下所示,该值不会显示

from detected_cars import carlabels
tag_id_nd_coordinates = labels
print tag_id_nd_coordinates

1 个答案:

答案 0 :(得分:0)

您的函数返回一个列表。将其分配给某个东西,然后将其视为任何其他列表。

#detected_cars.py
def carlabels():
    return [1, 2, 3]

然后

>>> from detected_cars import carlabels # note no .py extension when importing
>>> labels = carlabels()
>>> print(labels)
[1, 2, 3]
>>> print("sum of labels: ", sum(labels))
sum of labels: 6
>>> print('First label: ', labels[0])
First label: 1

from detected_cars import carlabels行不会执行您的carlabels功能。它只在该文件中提供该功能。

如果您想要访问在其他脚本中创建的labels变量,则应该可以使用from detected_cars import labels,然后使用labels作为列表。