我正在使用ctypes和python3。
我有一个想要在其中调用使用DLL中函数的方法的类,因此我可以按以下方式在该类 init 中加载DLL并可以从那里访问它。
class example():
def __init__():
self.library = ctypes.cdll(example.dll)
def method_1(self):
do_something = self.library.FUNCTION(etc...)
这一切都很好,DLL将在每个实例上加载并可以使用。但是我还有其他不在类中的函数:
def func_outside_class():
library = ctypes.cdll(example.dll)
do_something_else = library.FUNCTION(etc)
所以我在课堂外有几个这样的东西,我想知道多次在同一个lib上调用cdll是否是错误的做法?对我来说似乎不太正确。我当然可以调用一次,然后在创建时将该实例传递给函数/类实例,但是我希望能够将这些实例导入其他地方使用,因此我很好地包含了它。
有什么想法吗?很高兴得知这很好,但是我不禁想到有一个更优雅的解决方案。
干杯!