ctypes.cdll.LoadLibrary真正做了什么?

时间:2017-05-11 14:07:45

标签: python dll import

我对python3,ctypes.cdll.LoadLibrary有点困惑。 现在看到以下内容,我有一个名为'_iterative.cpython-36m-x86_64-cygwin.dll'的文件,我写了一个名为'_iterative.py'的python脚本来导入它:

import ctypes
api = ctypes.cdll.LoadLibrary("_iterative.cpython-36m-x86_64-cygwin.dll")

有线部分是,当我在Python REPL中键入这些命令,并列出api的 dir 时,列出当前模块的 dir ,这与当时的情况不同我用import。 更清楚的是,看图片: using REPL commands

use import

任何人都可以解释原因吗?

1 个答案:

答案 0 :(得分:0)

因为做import意味着不仅仅是加载dll。 虽然LoadLibrary正是如此:只需以可能从那里调用某些内容的方式加载[binary] lib(无保修)。

因此,使用import可能(如果导入者提供)获取某些内容(例如dir()globals()),而不仅仅是句柄。< / p>

另一方面,LoadLibrary并不强迫你在你想要的图书馆中使用pythonic。