array.array在Python中使用时遇到了一些困惑.这是代码:
import array
a = array.array('l', [1000, 2000, 3000, 4000])
for e in range(4):
print(a[e], id(a[e]))
Run Code Online (Sandbox Code Playgroud)
结果让我困惑:
1000 140505536637552
2000 140505536637488
3000 140505536637552
4000 140505536637488
Run Code Online (Sandbox Code Playgroud)
为什么a[0]ID与a[2]?我使用Python 3.7.
-----------补充--------------
正如@Mad物理学家所说,这是打印id(a[e])两次的结果:
for e in range(4):
print(a[e], id(a[e]), id(a[e]))
1000 139949448301712 139949448301712
2000 139949448299920 139949448299920
3000 139949448301136 139949448301136
4000 139949448301712 139949448301712
Run Code Online (Sandbox Code Playgroud)
我认为这是由于GC和内存管理机制.
最近,我尝试使用 JSON Web Token (JWT) 作为访问令牌来实现 OAuth2.0 服务器。我对 JWT 的独立功能感到非常困惑。我注意到 JWT 可以在任何地方进行验证,而不是强制在授权服务器中进行验证,因为它是独立的。这个功能是如何工作的?JWT 中应包含哪些声明才能实现自包含功能?
另一个问题是,如果 JWT 是无状态的,则意味着服务器不应该存储 JWT。那么JWT是如何验证的呢?难道就不能轻易伪造吗?
我是这个领域的菜鸟,希望有人能帮助我:)