擅长:python、mysql、java
<p>由于在实例化<code>_401</code>实例后使用的是两种不同的方法,因此最好使用类级工厂方法,这样可以创建实例<em>并设置所需的头:</p>
<pre><code>class _401(HTTPUnauthorized):
@classmethod
def basic_jwt_header(cls):
ret = cls()
ret.headers.add('WWW-Authenticate','JWT')
ret.headers.add('WWW-Authenticate', 'Basic realm="Please log in"')
return ret
@classmethod
def jwt_header(cls):
ret = cls()
ret.headers.add('WWW-Authenticate','JWT')
return ret
resp = _401.basic_jwt_header()
print resp.headers
</code></pre>
<p>现在不需要创建<code>__init__</code>,也不需要调用<code>super()</code>什么的。我们使用<code>cls</code>而不是显式的<code>_401</code>类来支持<code>_401</code>的任何未来子类。你知道吗</p>