我有common/auth.py
#!/usr/bin/env python
import subprocess
def process_token():
global TOKEN
TOKEN = subprocess.Popen("auth-token",
shell=True,
stdout=subprocess.PIPE,
universal_newlines=True)
我也有script.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import common.auth
token = TOKEN.stdout.read()
headers = {'Authorization': "{token}"}
为什么我不能使用python模块中的变量?我收到错误消息:Undefined variable 'TOKEN'
答案 0 :(得分:1)
TOKEN
之前,未定义 process_token
。无论如何,global
变量在大多数情况下都是一个坏主意,请避免使用它们,直到您真正知道自己在做什么。对于common/auth.py
import subprocess
def process_token():
return subprocess.Popen(
"auth-token", shell=True, stdout=subprocess.PIPE, universal_newlines=True
)
和script.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import common.auth
token = common.auth.process_token()
headers = {'Authorization': "{token}"}