如何将自定义方法添加到 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
对象做。
我需要通过 SMTP 接收电子邮件,因此决定在 Python 中使用 SMTPD Lib
。有一个 class SMTPChannel
- 是否可以向这个 class 添加一个方法?我宁愿不需要扩展它,而是做一些我的方法会在加载时存在的事情...
您可以在运行时动态地将成员添加到任何内容,包括方法。您只需要将方法单独定义为函数,然后使用方法扩充类型:
def someMethod (self):
# do something with self
SMTPChannel.someMethod = someMethod
之后,SMTPChannel
类型的所有对象都可以访问该方法。
请注意,这样做将不适用于以两个下划线开头的成员的名称修改 Python。所以你真的不能做任何事情,你不能用“外部”的SMTPChannel
对象做。