所以我有一个类似下面的函数,名为analysis1.py:
returned_value = analysis1.my_function(test_path)
if returned_value == k_1:
do_something_1
if returned_value == k_2:
do_something_2
if returned_value == k_3:
do_something_3
if returned_value == k_4:
do_something_4
if returned_value == k_5:
do_something_5
我想创建一个代码,找出函数返回的内容,并使用返回的值来计算一些东西。每个返回的值用于计算不同的内容,例如在与前一个名为main_code.py的同一目录中的不同代码库中:
{{1}}
我可以在此代码中添加哪些内容,以帮助我了解返回的内容并使用它来解决显示的问题。我知道我错过了一些小东西但却无法弄明白它是什么。
答案 0 :(得分:0)
我认为您不了解函数在Python中是如何工作的。函数就像是编程领域的口袋工具。你可以随时使用它们,它们会return
你的东西 - 就像当你输入1 + 1时计算器返回2。
同样,你需要做的就是运行函数(带有必需的参数),它将return
你的东西。你可以这样做:
returned_value = my_function(my_arg)
当函数返回一个值时,您可以将其视为用该值替换整个函数调用。所以,声明如下:
returned_value = "some returned value"
在那之后,你可以继续做你正在做的事情。
如果每个if
语句在函数中有不同的参数,请记住,用返回的值替换函数调用,看看它是否有意义:
if my_function(arg_1) == k_1:
do_something_1
if my_function(arg_2) == k_2:
do_something_2
if my_function(arg_3) == k_3:
do_something_3
if my_function(arg_4) == k_4:
do_something_4
if my_function(arg_5) == k_5:
do_something_5
答案 1 :(得分:0)
在if returned_value
行之前,添加以下内容:
returned_value = my_function(test_path)
这会将从my_function
返回的值分配给returned_value
。此时,您的if
语句将开始检查值以查看它是否与预期值匹配。如果是这样,将调用相应的do_something_*
函数。
一些注意事项:
k_1
,k_2
等。)在调用值之前,需要将值分配给某处,否则您将被调用将获得NameError
例外。do_something_*
调用是函数,您需要将调用从do_something_1
更改为do_something_1()
(注意括号)答案 2 :(得分:0)
您的问题是变量:k_1
.. k_5
未定义为保存值。首先在某处定义它们。看起来你正在寻找相当于enum
的东西。
from enum import Enum
KType = Enum('KType', 'k_1 k_2 k_3 k_4 k_5')
然后你可以这样做:
..
..
if "a:" in lines:
return KType.k_1
elif "b:" in lines:
return KType.k_2
elif "c:" in lines:
return KType.k_3
elif "d:" in lines:
return KType.k_4
elif "e:" in lines:
return KType.k_5
..然后比较,你可以这样做:
returned_value = my_function(path)
if returned_value==KType.k_1:
do_something_1
if returned_value==KType.k_2:
do_something_2
if returned_value==KType.k_3:
do_something_3
if returned_value==KType.k_4:
do_something_4
if returned_value==KType.k_5:
do_something_5