返回函数的值到另一个函数python
问题描述:
声明:我是编程新手。 下面的代码不起作用,因为它似乎功能1输出没有传递到功能2.返回函数的值到另一个函数python
def img_to_color(path_file):
# takes an image and calculates avg red/green/blue value
color_avg = [red, green, blue]
return color_avg
def extract_RGB(path_folder):
j = 0
RGB = []
file_count = len(os.listdir(path_folder))
files = os.listdir(path_folder)
while j < file_count:
img_to_color(path_folder + "/" + files[j])
RGB.append(color_avg)
j = j+1
X_training.append(trainingDataFolder(pfad, RGB))
img_to_color工作,但RGB停留[]即使我调用该函数的功能。
答
变量color_avg
位于img_to_color
函数的本地。它不存在于extract_RGB
之内。 img_to_color
返回一个值,所以你必须要么分配给它一个变量,如:
color_avg = img_to_color(...)
,或者直接返回值传递给一个函数,如:
RGB.append(img_to_color(...)
+0
非常感谢斯宾塞。 完美的作品,我终于明白这是如何工作的。 –
答
你有问题与缩进。您应该先阅读this。
顺便说一句,变量X_training
似乎并没有在任何地方声明,所以我不确定它是否是更全局上下文的一部分。
的代码应该这样写:
def img_to_color(path_file):
# takes an image and calculates avg red/green/blue value
color_avg = [red, green, blue]
return color_avg
def extract_RGB(path_folder):
j = 0
RGB = []
file_count = len(os.listdir(path_folder))
files = os.listdir(path_folder)
while j < file_count:
color_avg = img_to_color(path_folder + "/" + files[j])
RGB.append(color_avg)
j = j+1
X_training.append(trainingDataFolder(pfad, RGB))
什么是'X_training'?在哪里宣布? “红”,“绿”和“蓝”也一样。 –
我排除了红色,绿色和蓝色的计算,使其更短。此功能正常工作。 X_training也存在(作为全局声明)。 –