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