传递变量的函数内到另一个Python文件
我有两个Python文件,这是classification_model.py
和result.py
。有一个在classification_model.py
文件传递变量的函数内到另一个Python文件
def learningbased():
ann_accuracy = (metrics.accuracy_score(expected, predicted))
功能我想这个ann_accuracy
变量为result.py
file.I使用
from classification_model import *
from classification_model import learningbased
但它不工作。谁能告诉我我该怎么做。
好办法: 您可以在函数返回ann_accuracy的价值和调用函数中result.py来获取值。
#classification_model.py:
def learningbased():
ann_accuracy = (metrics.accuracy_score(expected, predicted))
return ann_accuracy
#result.py
from classification_model import *
ann_accuracy = learningbased()
交替方式(使用时绝望,没有其他的解决方案): 声明ann_accuracy如classification_model.py全局变量。这样,当你做from classification_model import *
并调用函数时,你会得到result.py中的全局变量
返回值,请不要这样认为这种可怕的东西用全球性的,特别是对人谁显然还不能明白为什么这绝对不是一个好主意。 –
即使重写它仍然是错误的 - 总是有另一个(更好的)解决方案。哦,是的,当我们在这里时:一起使用全球和明星导入将不起作用(自己尝试......)。 –
我正如你所说的那样从函数返回ann_accuracy并将其放入result.py文件中。现在它的工作。谢谢 –
将ann_accuracy声明为在classification_model.py中的全局变量。使用from classification_model import *
,可以使用/访问result.py中的全局变量。
最糟糕的解决方案,如果我可以downvote这个答案999倍,我很乐意做。不要使用全球。 –
我想你应该作为一个整体,通过添加__init__.py
文件中声明你的项目:
project_folder
|_ __init__.py
|_ classification_model.py
|_ result.py
这样做后,在result.py
你可以这样做:
from . import classification_model
classification_model.learning_based()
这是从一点点不同已经建议了什么,它使您能够清晰地组织您的项目。
其无法访问此方式。要么使它成为一个类,并添加'ann_accuracy'作为类变量,或者干脆让本作的功能 –