我想从python中的整个函数返回一个变量,而在另一个python脚本中仅使用一个变量。我将如何去做。我尝试了以下方法:
脚本:
def adding(self):
s = requests.Session()
test = s.get('url')
print test.content
soup = BeautifulSoup(test.content,'html.parser')
val = soup.find('input', {'name': 'id'})
return val
因此脚本A给了我一个定义为val
的值,我只想import
这个值,但是当我将脚本A导入脚本B时,它将运行包括{{1} }。我将如何去做?
脚本B:
print test.content
答案 0 :(得分:2)
您不能执行部分功能,它将执行整个功能。如果您不希望它成为功能的一部分,则必须删除它。
此外,如果您在scripta
中的函数之外具有代码,则必须使用if __name__
子句对其进行保护,以防止在导入时执行。
scripta.py:
import requests
from BeautifulSoup import BeautifulSoup
def adding():
s = requests.Session()
test = s.get('url')
# print test.content
soup = BeautifulSoup(test.content,'html.parser')
val = soup.find('input', {'name': 'id'})
return val
if __name__ == '__main__':
# this part will only run if this is the main script.
# when starting scriptb first and importing this part won't run
print adding()
scriptb.py:
from scripta import adding
result = adding() # the result variable will have what you returned (val)
答案 1 :(得分:1)
调用函数并存储结果:
#Script A:
def adding():
# remove "self" param, it is not used (and this does not
# seem to be a method of a class)
# ...
#Script B:
from scripta import adding
xyz = adding() # variable name does not matter
# do stuff with xyz
这就是为什么首先要有return语句的原因。因此,您可以在其他地方传递局部变量的值,调用函数是实现此目的的方法。