擅长:python、mysql、java
<p>为什么不接受任何关键字参数。您可以将class属性用于允许的关键字名称及其默认值。在</p>
<pre><code>class Class(object):
_defaults = dict(kw0=42, kw1=None, kw2=True, kw3="Ni!")
def __init__(self, **kwargs):
# Raise exception if any non-supported keywords supplied
if set(kwargs.keys()) - set(self._defaults.keys()):
raise KeyError("unsupported keyword argument")
# Update our instance with defaults, then keyword args
self.__dict__.update(self._defaults)
self.__dict__.update(kwargs)
</code></pre>
<p>如果您希望在多个方法(例如<code>__init__()</code>和<code>null()</code>)中使用相同的功能,那么只需将处理参数的代码分解成自己的方法,并从这两个地方调用它。在</p>
<p>一个缺点是,<code>help()</code>和其他Python文档工具不会显示允许的关键字参数,因为它们不在方法签名中。在</p>
<p>另外,我不太清楚为什么要分别存储键和值。只需将它们存储为字典,然后在需要时使用字典的<code>.keys()</code>或{<cd5>}方法获取键或值。在</p>