当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python email.headerregistry.BaseHeader用法及代码示例


用法:

class email.headerregistry.BaseHeader(name, value)

namevalueheader_factory 调用传递给 BaseHeader。任何标头对象的字符串值都是完全解码为 unicode 的 value

这个基类定义了以下只读属性:

BaseHeader 还提供了以下方法,该方法由电子邮件库代码调用,一般不应由应用程序调用:

BaseHeader 本身不能用于创建标头对象。它定义了一个协议,每个专用标头与之合作以生成标头对象。具体来说,BaseHeader 要求专用类提供一个名为 parseclassmethod()。该方法调用如下:

parse(string, kwds)

kwds 是包含一个预初始化键 defects 的字典。 defects 是一个空列表。 parse 方法应将任何检测到的缺陷附加到此列表中。返回时,kwds 字典 must 至少包含键 decodeddefects 的值。 decoded 应该是标头的字符串值(即完全解码为 unicode 的标头值)。 parse 方法应该假设 string 可能包含 content-transfer-encoded 部分,但也应该正确处理所有有效的 unicode 字符,以便它可以解析 un-encoded 标头值。

BaseHeader__new__ 然后创建头实例,并调用其 init 方法。如果专用类希望设置除BaseHeader 本身提供的属性之外的其他属性,则只需要提供init 方法。这样的init 方法应该如下所示:

def init(self, /, *args, **kw):
    self._myattr = kw.pop('myattr')
    super().init(*args, **kw)

也就是说,应该删除和处理专用类放入 kwds 字典的任何额外内容,并将 kw (和 args )的剩余内容传递给 BaseHeader init 方法。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 email.headerregistry.BaseHeader。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。