在Python中向第三方库类添加方法

2024-05-31 23:39:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个项目使用第三方库(PySphere)。PySphere提供了一个与VMware交互的简单API。但这是一个普遍的问题,并不是这个库特有的问题。在

库的简单用法是获取VM对象,然后对其执行各种操作:

vm_obj = vcenter.get_vm_by_name("My VM")
vm_obj.get_status()
vm_obj.power_on()

我想向vm_obj类添加一些方法。这些方法对VM上使用的操作系统高度特定,不值得提交回库。现在我一直这样做:

^{pr2}$

这看起来很不和谐。我希望能够将我的方法添加到vm_obj class,而不直接修改第三方库中的类定义。在


Tags: 项目对象方法nameapiobj用法get
1条回答
网友
1楼 · 发布于 2024-05-31 23:39:18

虽然可以将任何可调用的附加到类对象(即vm_obj.__class__),但该函数不是方法,也没有self属性。要创建真正的方法,可以使用new模块from the standard library

vm_obj.set_config_x = new.instancemethod(callableFunction, vm_obj, vm_obj.__class__)

其中callableFunctionselfvm_obj)作为第一个参数。在

相关问题 更多 >