exec to add a function into a class
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: So I've looked at similar questions, and I've found some solutions to this, but I can't quite figure out how to do this. What I'm trying to do is add a method to a class from a string. I can do this with the setattr() method, but that won't let me use self as an attribute in the extra method. Here's an example: (and I apologize for the variable names, I always use yolo when I'm mocking up an idea) class what: def __init__(self): s = 'def yolo(self):\n\tself.extra = "Hello"\n\tprint self.extra' exec(s) setattr(self,"yolo",yolo) what().yolo()