如何将自定义方法添加到 Python 类?

How to add custom method to Python class?

我需要通过 SMTP 接收电子邮件,因此决定在 Python 中使用 SMTPD Lib。有一个 class SMTPChannel - 是否可以向这个 class 添加一个方法?我宁愿不需要扩展它,而是做一些我的方法会在加载时存在的事情...

您可以在运行时动态地将成员添加到任何内容,包括方法。您只需要将方法单独定义为函数,然后使用方法扩充类型:

def someMethod (self):
    # do something with self

SMTPChannel.someMethod = someMethod

之后,SMTPChannel 类型的所有对象都可以访问该方法。

请注意,这样做将不适用于以两个下划线开头的成员的名称修改 Python。所以你真的不能做任何事情,你不能用“外部”SMTPChannel对象做。