相关疑难解决方法(0)

将方法添加到现有对象实例

我已经读过可以在Python中向现有对象(即,不在类定义中)添加方法.

我知道这样做并不总是好事.但是人们怎么可能这样做呢?

python oop methods monkeypatching

596
推荐指数
13
解决办法
22万
查看次数

Python:在运行时更改方法和属性

我希望在Python中创建一个可以添加和删除属性和方法的类.我该怎么做呢?

哦,请不要问为什么.

python reflection runtime

72
推荐指数
5
解决办法
6万
查看次数

在python中动态添加@property

我知道我可以通过执行以下操作动态地向对象添加实例方法:

import types
def my_method(self):
    # logic of method
# ...
# instance is some instance of some class
instance.my_method = types.MethodType(my_method, instance)
Run Code Online (Sandbox Code Playgroud)

后来我可以打电话instance.my_method(),自我将被正确绑定,一切正常.

现在,我的问题:如何做同样的事情来获得用@property装饰新方法的行为?

我猜是这样的:

instance.my_method = types.MethodType(my_method, instance)
instance.my_method = property(instance.my_method)
Run Code Online (Sandbox Code Playgroud)

但是,这样做会instance.my_method返回一个属性对象.

python

18
推荐指数
1
解决办法
9355
查看次数

标签 统计

python ×3

methods ×1

monkeypatching ×1

oop ×1

reflection ×1

runtime ×1