如何从整个函数返回单个变量?

时间:2018-07-04 17:14:53

标签: python python-2.x

我想从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

2 个答案:

答案 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语句的原因。因此,您可以在其他地方传递局部变量的值,调用函数是实现此目的的方法。