我试图将另一个脚本中的变量调用到我当前的脚本中,但是遇到了未定义的变量"的问题。
botoGetTags.py
20 def findLargestIP():
21 for i in tagList:
22 #remove all the spacing in the tags
23 ec2Tags = i.strip()
24 #seperate any multiple tags
25 ec2SingleTag = ec2Tags.split(',')
26 #find the last octect of the ip address
27 fullIPTag = ec2SingleTag[1].split('.')
28 #remove the CIDR from ip to get the last octect
29 lastIPsTag = fullIPTag[3].split('/')
30 lastOctect = lastIPsTag[0]
31 ipList.append(lastOctect)
32 largestIP = int(ipList[0])
33 for latestIP in ipList:
34 if int(latestIP) > largestIP:
35 largestIP = latestIP
36 return largestIP
37 #print largestIP
38
39 if __name__ == '__main__':
40 getec2Tags()
41 largestIP = findLargestIP()
42 print largestIP
因此,此脚本^正确返回largestIP
的值,但在我的其他脚本中
terraform.py
1 import botoGetTags
8 largestIP = findLargestIP()
在我执行脚本terraTFgen.py中的任何函数之前,我得到:
Traceback (most recent call last):
File "terraTFgen.py", line 8, in <module>
largestIP = findLargestIP()
NameError: name 'findLargestIP' is not defined
我认为如果我导入另一个脚本,我可以在当前脚本中使用这些变量,那么我应该采取另一个步骤吗?
由于
答案 0 :(得分:2)
您导入了模块,而不是函数。所以你需要通过模块来参考这个功能:
import botoGetTags
largestIP = botoGetTags.findLargestIP()
或者您可以直接导入该功能:
from botoGetTags import findLargestIP
largestIP = findLargestIP()