为了账号安全,请及时绑定邮箱和手机立即绑定

将方法添加到Python中的第三方库类

将方法添加到Python中的第三方库类

翻翻过去那场雪 2021-03-13 11:11:25
我正在为我正在处理的项目使用第三方库(PySphere)。PySphere提供了一个简单的API与VMware进行交互。但是,这是一个普遍的问题,并非特定于此库。该库的简单用法是获取VM对象,然后对其执行各种操作:vm_obj = vcenter.get_vm_by_name("My VM")vm_obj.get_status()vm_obj.power_on()我想向vm_obj类添加一些方法。这些方法是特定于VM上使用的OS的,因此不值得将其提交回库。现在,我一直在这样做:set_config_x(vm_obj, args)这似乎很不可思议。我希望能够将我的方法添加到中vm_obj class,而无需直接修改第三方库中的类定义。
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

您可以将任何可调用项附加到类对象(即vm_obj.__class__)上,但该函数将不是方法,也不会具有self属性。要实现真正的方法,可以使用标准库中的new模块:

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

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


查看完整回答
反对 回复 2021-03-29
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号