在类外声明的变量上出现python-NameError
Python新手,学习如何使用类。我定义了一个类,它有一个“create”方法,该方法使用一个参数(private_key)作为命令的一部分来创建令牌 命令如下:在类外声明的变量上出现python-NameError,python,python-3.x,Python,Python 3.x,Python新手,学习如何使用类。我定义了一个类,它有一个“create”方法,该方法使用一个参数(private_key)作为命令的一部分来创建令牌 命令如下: jwt.encode(payload, private_key, algorithm="RS256", headers=additional_headers).decode("utf-8") 我使用类外的函数来填充变量private_key 下面是代码(myToken.py): 类MyToke
jwt.encode(payload, private_key, algorithm="RS256", headers=additional_headers).decode("utf-8")
我使用类外的函数来填充变量private_key
下面是代码(myToken.py):
类MyTokenMgr():
定义初始化(自):
通过
def创建(自我、私钥、电子邮件):
#函数从文件中加载密钥
def load_privkey(privkey_文件名):
将open(privkey_文件名,'r')作为f:
data=f.read()
返回数据
#读取本地私钥
私钥=加载私钥(“测试密钥/jwt密钥”)
打印('这是本地私钥:',私钥)
这是我的问题。当我从命令行本地运行python时。我想测试对象的实例化。但是,我得到了NameError,并且变量没有定义
:
$python
win32上的Python 3.7.2(tags/v3.7.2:9A3FFC049220018年12月23日23:09:28)[MSC v.1916 64位(AMD64)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>从lib.myToken导入MyTokenMgr
这是本地私钥:-开始RSA私钥-----
Miijkaibakcageatr454somht7iyu+9mM6OmtzOK/i2ajNwtybYY/fQf3vMOUt8
'''
'''
-----结束RSA私钥-----
>>>newtoken=MyTokenMgr()
>>>newtoken.create(私钥,'test@gmail.com')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
名称错误:未定义名称“私钥”
您可以看到,我打印了变量,以便查看键并确认变量使用了它。那么为什么我仍然得到未定义的错误呢?
我误解了什么概念?谢谢你的帮助
from lib.myToken import MyTokenMgr
您只导入符号MyTokenMgr
。如果要导入其他符号,则在导入时还需要指定它们:
from lib.myToken import MyTokenMgr, private_key
您只导入符号MyTokenMgr
。如果要导入其他符号,则在导入时还需要指定它们:
from lib.myToken import MyTokenMgr, private_key
private\u key
保留在文件的范围内,您可以通过从lib.myToken import private\u key声明或通过在控制台中声明private\u key=…
来导入它,您只导入MyTokenMgr
。也许你的意思是从lib.myToken导入MyTokenMgr,private_key
谢谢你们。这样做很有效。我不知道你能导入一个变量?@noober当你导入一个类时,你就是在导入一个变量。@alaniwi-明白。非常感谢。private\u key
保留在文件的范围内,您可以通过从lib.myToken import private\u key声明或通过在控制台中声明private\u key=…
来导入它,您只导入MyTokenMgr
。也许你的意思是从lib.myToken导入MyTokenMgr,private_key
谢谢你们。这样做很有效。我不知道你能导入一个变量?@noober当你导入一个类时,你就是在导入一个变量。@alaniwi-明白。非常感谢。
from lib.myToken import MyTokenMgr, private_key