- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
>>print contents of f.__enter__() #>> f = open("x.txt"-6ren">
问题几乎说明了一切。
我想以这种方式查看代码:
>>>f = open("x.txt")
>>>print contents of f.__enter__() #<- how can I do this?
最佳答案
没有。 (除了查看 Python 源代码。)
>>> f = open("x.txt")
>>> f.__enter__
<built-in method __enter__ of file object at 0x022E4E90>
所以 __enter__
的实现是在 Python 的 C 代码中的某个地方。
它实际上在 Objects/fileobject.c
中,您可以找到 in the Python source tree [注意:我认为这是 2.7 分支上当前最新的东西;可能有更好的链接方式] 并查看代码,您会发现实际上 f.__enter__
返回 f
本身。当然,这就是这种特殊情况下发生的情况;其他对象的 __enter__
方法将做完全不同的事情。
在这种情况下,__enter__
方法恰好是 native 代码。在其他情况下,它可能是 Python 代码,但您通常仍然无法从 Python 内部看到它。
>>> import decimal
>>> decimal.localcontext().__enter__
<bound method _ContextManager.__enter__ of <decimal._ContextManager object at 0x02192B50>>
那是 Python 字节码而不是 native 代码。可以看到字节码:
import dis
dis.dis(decimal.localcontext().__enter__)
但不保证原始 Python 源代码可用。但是你可以试试:
import inspect
print inspect.getsource(decimal.localcontext().__enter__)
有时会做你想做的事。
关于python - 有没有办法查看 python 解释器中 __enter__() 函数背后的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488971/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!