Python-我可以在运行时修改方法吗?
是否可以在运行时修改方法? 假设我有一个类Python-我可以在运行时修改方法吗?,python,Python,是否可以在运行时修改方法? 假设我有一个类a,它有一个方法func1(一些参数)。 是否可以修改这个func1(某些参数)方法,比如说在开头添加一行print('HelloWorld') 我做了一些实验,通过像这样访问它来覆盖这个方法-A.func1,但是在插入一行代码的阶段被卡住了 下面是示例类 class A: def __init__(self, some_field): self.some_field = some_field def f
a
,它有一个方法func1(一些参数)
。
是否可以修改这个func1(某些参数)
方法,比如说在开头添加一行print('HelloWorld')
我做了一些实验,通过像这样访问它来覆盖这个方法-A.func1
,但是在插入一行代码的阶段被卡住了
下面是示例类
class A:
def __init__(self, some_field):
self.some_field = some_field
def func1(self, param):
self.some_field = param
在运行时,我想实现这个类:
class A:
def __init__(self, some_field):
self.some_field = some_field
def func1(self, param):
print('HelloWorld')
self.some_field = param
如果唯一要做的是在可以使用decorator之前或之后插入行,则将参数传递给decorator。
看看这个。是的,这是可能的。从这个意义上讲,Python是非常动态的 代码: 输出:
HelloWorld
stand alone func
为什么不从头开始编写第二个代码?是否需要修改该方法?您是否可以创建一个类
B
,该类扩展a
并重写func1
方法(如果需要,调用父方法)?听起来您可能需要一个装饰程序。。。但是说真的,除非你真的需要,否则不要这样做。谢谢大家mkrieger1我在上一节编码课的时候遇到了这个问题,所以这确实很容易,但它违背了任务定义:)RocketHazmat这是个好主意,但与前面的评论一样,同样违背了任务定义,我需要保留原始类,只是为了修改它
HelloWorld
stand alone func