在类外声明的变量上出现python NameError

2024-09-29 19:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

Python新手,学习如何使用类。我定义了一个类,它有一个“create”方法,该方法使用一个参数(private_key)作为命令的一部分来创建令牌

命令如下:

jwt.encode(payload, private_key, algorithm="RS256", headers=additional_headers).decode("utf-8")

我使用类外的函数来填充变量private_key

下面是代码(myToken.py):

class MyTokenMgr():

    def __init__(self):
        pass

    def create(self, privkey, email):
        <MORE CODE HERE TO CREATE TOKEN>


# Function to load key from file
def load_privkey(privkey_filename):
    with open(privkey_filename, 'r') as f:
        data = f.read()
    return data

#Read the private local key
private_key = load_privkey('testkeys/jwt-key')
print('This is the local private key:', private_key)

这是我的问题。当我从命令行本地运行python时。我想测试对象的实例化。但是,我得到了NameError,并且变量没有定义 :

$ python
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from lib.myToken import MyTokenMgr
This is the local private key: -----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEAtr454soMHt7IYU+9mM6OmtzOK/i2ajNwtybYY/fQf3vMOUt8
'''
'''
-----END RSA PRIVATE KEY-----

>>> newtoken = MyTokenMgr()
>>> newtoken.create(private_key,'test@gmail.com')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'private_key' is not defined

您可以看到,我打印了变量,以便查看键并确认变量使用了它。那么为什么我仍然得到未定义的错误呢? 我误解了什么概念?谢谢你的帮助


Tags: the方法key命令定义islocaldef
1条回答
网友
1楼 · 发布于 2024-09-29 19:34:16
from lib.myToken import MyTokenMgr

您只导入符号MyTokenMgr。如果要导入其他符号,则在导入时还需要指定它们:

from lib.myToken import MyTokenMgr, private_key

相关问题 更多 >

    热门问题