Python脚本没有返回字符串

时间:2018-03-24 00:16:22

标签: python

您好,我遇到了非常奇怪的现象。

我有两个脚本。

1)main.py

import tree
def main():
   msg =tree.logic(data)
   print msg

2)tree.py

def logic(data):
    if data["A"] > data["B"]:
        return "A is bigger"
    else:
        return "B is bigger"

当我在msg中打印main.py时,它会打印None。免责声明:A和B没有相同的值。我检查了一下。

data示例,它只是字典:

{
"A": 23,
"B": 25
}

由于它没有返回字符串,我做了一个快速测试,如下所示。由于在逻辑函数中有一个if语句,我只是立即返回一个字符串。

def logic(data):
    return "Is it returning?"

然后,msg打印"is it returning?"。我不确定为什么在第一种情况下没有返回字符串。想法?

3 个答案:

答案 0 :(得分:0)

这是针对同一目录中的2个不同文件。我将数据放在main()中,因为你有一个main(),数据不能传递给main()。如果要在启动程序时将数据传递给函数,则函数必须调用main()以外的函数。

文件1:main.py

#!python2

# import module
import tree

def main():
    data = {"A": 23, "B": 25}
    msg = tree.logic(data)
    print msg

# start program
main()

文件2:tree.py

#!python2

def logic(data):
    if data["A"] > data["B"]:
        return "A is bigger"
    else:
        return "B is bigger"

答案 1 :(得分:-1)

主要功能应该采用数据参数。

import tree
def main(data):
    msg =tree.logic(data)
    print msg

答案 2 :(得分:-1)

未调用main函数且未定义数据。如果您将main.py更改为以下代码,它可以工作(不对tree.py进行任何修改):

#!/usr/bin/python

import tree

def main():
    data = { "A":4, "B":3 }
    msg = tree.logic(data)
    print msg

if __name__ == "__main__":
    main()