如何使用python返回的值

时间:2016-06-22 01:49:53

标签: python

所以我有一个类似下面的函数,名为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}}

我可以在此代码中添加哪些内容,以帮助我了解返回的内容并使用它来解决显示的问题。我知道我错过了一些小东西但却无法弄明白它是什么。

3 个答案:

答案 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_1k_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