Python 从类外部向类添加方法
我想从我的类外部将此方法添加到我的类中。我还想从我的类内部调用我的方法(method1)。将“家庭作业”的值更改为0Python 从类外部向类添加方法,python,python-3.x,class,methods,Python,Python 3.x,Class,Methods,我想从我的类外部将此方法添加到我的类中。我还想从我的类内部调用我的方法(method1)。将“家庭作业”的值更改为0 def method1(self): print("Processing.....") print("Done :D") self.homework = 0 class Sss: homework = 10 def homeworkremover(self): Sss.method1
def method1(self):
print("Processing.....")
print("Done :D")
self.homework = 0
class Sss:
homework = 10
def homeworkremover(self):
Sss.method1 = method1
Sss.method1()
a = Sss()
print(a.homeworkremover())
但我收到了一个错误代码:
TypeError: method1() missing 1 required positional argument: 'self'
那么,我如何才能将这个方法添加到我的类中,以及如何通过在类内部使用method1来更改“家庭作业”的值呢?谢谢。这个例子似乎很做作,我看不出它在当前形式下的用法(从正在类实例上执行的方法中为类添加新方法) 但要使其发挥作用,只需更换:
Sss.method1()
与
因为添加的方法是作为实例方法而不是类方法
在旁注上,而不是
Sss.method1 = method1
最好使用:
self.__class__.method1 = method1
(不太依赖于类名,在类继承场景中也能更好地工作)嗯,不,这在语义上是两件不同的事情。它是否“在继承情况下更好”取决于您的意图。如果我使用Sss.method1(self)而不是Sss.method1(),会发生什么?method1是否属于Sss类?好的,伙计们,我已经解决了我的问题,谢谢你们的回答
self.__class__.method1 = method1