上下文(context)应该怎么理解,有人说是环境,但总觉得有点模糊

2018-11-23 09:49:54 +08:00
 king1101
看 flask 的时候看到两个名词,一个程序上下文,一个请求上下文,都不是很理解。谢谢各位大佬解释一下
5494 次点击
所在节点    Python
35 条回复
mmm159357456
2018-11-23 09:52:04 +08:00
我理解为寄存器
shylockhg
2018-11-23 09:52:27 +08:00
状态
PulpFunction
2018-11-23 09:59:57 +08:00
鱼水的那个啥
towser
2018-11-23 10:00:46 +08:00
英语完形填空需要依据「上下文」理解,和你说的上下文是一个意思。
liuxu
2018-11-23 10:02:43 +08:00
母板
araraloren
2018-11-23 10:10:20 +08:00
和当前事物有关联的所有事物的状态集合
Shynoob
2018-11-23 10:15:38 +08:00
#6 说的也是我想说的
Tumblr
2018-11-23 10:17:38 +08:00
Context Menu: 右键菜单 ———— 是这样么。。。
Rizio
2018-11-23 10:32:53 +08:00
状态机
MozzieW
2018-11-23 10:35:05 +08:00
想起刚看代码的自己...回一下
举例开始(可能不太恰当): 你怎么评价 XXX? 这个问题问题是没法回复的, 因为 1. 你不知道 XXX 是谁. 2. 你不知道 XXX 做了什么. 如果这句话在看文答题, 此时你就需要去上下文(Context) 找 XXX 相关的信息了. 所以所谓上下文(Context), 就是包含了你问题答案的背景信息的东西.
回到代码, 同样的, 你要去画一个圆圈. 但是屏幕上有很多个窗口, 你不知道画在哪个窗口上. 但再多个你一个 ContextWindow01, 你就知道是往 ContextWindow01 上面画了. 这个 ContextWindow01 就提供了你画圆圈所需要的信息.
再扩展一下, Context 只是一个词, 用来表明做一件事需要的背景信息. 用这个的原因是, 做这个事情需要很多信息, 不能一次性提供, 或者不想使用者接触到(封装), 所以直接用一个大的东西把所有条件包成一个了.
写太长了....好像有点复杂...不过基本可以看懂吧.....
66beta
2018-11-23 10:37:10 +08:00
某个东西的当前环境
paragon
2018-11-23 10:43:48 +08:00
你如果搞过 android 应该就明白了
vipppppp
2018-11-23 10:46:18 +08:00
#6 正解
表达了我很想表达但不知怎么表达的东西 = =
SmartKeyerror
2018-11-23 10:56:19 +08:00
Tvan
2018-11-23 10:59:05 +08:00
情境
SmartKeyerror
2018-11-23 11:01:52 +08:00
行吧,Markdown 的语法竟然发不出来。 解释一下:Flask 的上下文是指当前请求或者 App 对象在其它文件中使用的一种手段。Flask 内部使用 ThreadLocal 所实现的线程隔离栈实现, 如果你写过 Django 或者 SpringBoot 框架的代码, 你就会发现 request 对象是通过函数的参数传递给相关的视图处理函数的, 如果想在视图函数之外来使用该对象, 要么在中间件的位置将其以参数的形式传递到其它地方, 要么使用隔离栈。 在 Flask 中, 每一个请求在进入时, 都会将其压入当前线程的栈中, 那么在该请求的生命周期内, 任意地方都可以将该对象从栈弹出, 做一些额外的动作。 这就是 Flask 上下文的作用
sutra
2018-11-23 11:03:04 +08:00
コンテキスト
SmartKeyerror
2018-11-23 11:08:09 +08:00
另外为了上班儿更好的划水, 想再给你解释一下什么是上下文(context)。 这里以 Python 中的 with 关键字为例, 都知道 with 是一个上下文管理器, 以便 with 语句所包含的代码块能够自动的释放资源, 例如文件句柄的关闭, 锁的释放, 等等。 首先既然一个文件句柄能够被关闭, 那么首先该文件就会被打开, 同理, 锁也是一样的, 首先得调用 lock.acquire 对其进行加锁, 然后才能调用 lock.release 方法, 中间是需要同步的业务代码。 那么锁的打开, 关闭, 文件的打开与关闭, 就是上下文, 是我们代码的上下文, 我们需要依托这些资源来做一些事情。 而 with 的存在则是提供给程序员一种更好的管理方式。
lolizeppelin
2018-11-23 11:18:54 +08:00
多种语言多种框架里都有类似的上下文概念

一般用于定位自身从哪里来
stepfensl
2018-11-23 11:21:00 +08:00
不知道,但是他总是出现在一个功能的开始。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/510623

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX