처럼 두 개의 서로 다른 기능을 가지고 :다른`데프() 다른`함수에서 변수를 가지고하는 방법 - 파이썬
def messageWindow():
# all the necessary operations
feature_matrix_db = zip(B_mean , G_mean , R_mean, cont_list , ene_list , homo_list , cor_list, dis_list)
return feature_matrix_db
def open():
#all the necessary operations
feature_matrix_ip = zip(B_mean1 , G_mean1 , R_mean1, cont_list1 , ene_list1 , homo_list1 , cor_list1 , dis_list1)
return feature_matrix_ip
def result():
COLUMNS = 12
image_count = 0
resultlist_key = []
result_list = list()
i = 0
a_list = list()
b_list = list()
a_list.append(feature_matrix_ip)
while i < 70:
b_list.append(feature_matrix_db[i])
dist = distance.euclidean(a_list,b_list[i])
result_list.append(dist)
resultlist_key = OrderedDict(sorted(enumerate(result_list),key=lambda x:x[0])).keys()
i = i + 1
res_lst_srt = {'values': result_list,'keys':resultlist_key}
res_lst_srt['values'], res_lst_srt['keys'] = zip(*sorted(zip(res_lst_srt['values'], res_lst_srt['keys'])))
key = res_lst_srt['keys']
for i1,val in enumerate(key):
if i1 < 4:
image_count += 1
r, c = divmod(image_count, COLUMNS)
im = Image.open(resizelist[val])
tkimage = ImageTk.PhotoImage(resized)
myvar = Label(win, image=tkimage)
myvar.image = tkimage
myvar.grid(row=r, column=c)
처음 두 def()
기능 feature_matrix_db
및 feature_matrix_ip
를 반환합니다, 나는이 결과가되고 싶어 다음 def()
기능 결과로 수입 된. 그리고 그것은 다음과 같은 오류를줍니다 :
im = Image.open(resizelist[val])
File "E:\Canopy\System\lib\site-packages\PIL\Image.py", line 1956, in open
prefix = fp.read(16)
AttributeError: 'numpy.ndarray' object has no attribute 'read'
어떤 제안이라도 환영합니다. 미리 감사드립니다!
내장 파일'open()'을 덮어 쓰지 마십시오. 파일을 열려고 할 때 불편할 것입니다. – msvalkon
@msvalkon 괜찮아. 내가 그 'open()'을 바꿀거야 –
파이썬에서 [functions] (https://docs.python.org/2/tutorial/controlflow.html#defining-functions)에 대해 읽어 보시기 바랍니다. 이 함수들에 아무런 인수도 없다. *와 * 처음 두 함수 안에있는 변수를 선언하지 않는다. 'result()'안에 함수를 호출하지 않으므로 함수는 절대로 데이터를 반환하지 않습니다. – msvalkon