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

时间:2015-01-08 08:20:34

标签: python

我需要通过SMTP接受电子邮件,因为这决定在Python中使用SMTPD Lib。有一个类SMTPChannel - 可以在这个类中添加一个方法吗?我宁愿不需要扩展它,但做一些我的方法将在加载时...

1 个答案:

答案 0 :(得分:3)

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

def someMethod (self):
    # do something with self

SMTPChannel.someMethod = someMethod

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

请注意,对于以两个下划线开头的成员,Python执行此操作不起作用。所以你无法做任何事情,你不能使用“outside”中的SMTPChannel对象。