0
別のスクリプトから現在のスクリプトに変数を呼び出そうとしていますが、「変数が定義されていません」という問題が発生しています。他のスクリプトの変数を現在のスクリプトに呼び出す
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
私は関数のいずれかを実行する前に、このスクリプトは^正しく
terraform.py
1 import botoGetTags
8 largestIP = findLargestIP()
をlargestIP
の値を返しますが、私の他のスクリプトで私のスクリプトでは、terraTFgen.py、私は得る:
Traceback (most recent call last):
File "terraTFgen.py", line 8, in <module>
largestIP = findLargestIP()
NameError: name 'findLargestIP' is not defined
私は別のスクリプトをインポートすると、私の現在のスクリプトでこれらの変数を使うことができると思いました。
ありがとうございました
素晴らしいおかげで動作します。どの方法がより良いエチケットと考えられていますか? – chowpay
本当に厳しいルールはありません.PEP8は推奨しません。それは、それぞれが特定の状況でどれくらい読みやすいかによって異なります。いくつかの場所は家のスタイルを持っていますが - たとえばGoogleでは常にモジュールをインポートする必要があります。 –