您好,我遇到了非常奇怪的现象。
我有两个脚本。
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?"
。我不确定为什么在第一种情况下没有返回字符串。想法?
答案 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()