擅长:python、mysql、java
<p>代码可以缩小很多:</p>
<pre><code>'username' in mas_details.keys():
</code></pre>
<p>keys()是多余的,它等于</p>
^{pr2}$
<p>但更重要的是</p>
<pre><code>if 'username' in mas_details.keys():
mas_username = mas_details['username']
else:
mas_username = 'root'
</code></pre>
<p>等于</p>
<pre><code>mas_username = mas_details.get('username', 'root')
</code></pre>
<p>如果键不存在,get函数将使用默认值。在</p>
<p>但是:你所拥有的是一些<em>变量组和一些总是作用于变量的<em>功能</em>。这就是我们发明<strong>类的原因:</p>
<pre><code>class MasDetails(object):
def __init__(self, mas_details):
self.username = mas_details.get('username', 'root')
self.password = mas_details.get('password', 'root')
</code></pre>
<p>等等。然后传入一个<code>MasDetails</code>实例并使用它的<code>.username</code>属性。在</p>
<pre><code>mas = MasDetails(mas_details)
def foo(mas):
# use mas.username, mas.password here
</code></pre>
<p>如果您有任何只使用这些属性的功能,请将其作为方法放在这个类中。在</p>
<p>特别是,也许你的<code>foo</code>函数和其他14个函数应该只是<code>MasDetails</code>类上的方法,然后它们就可以使用<code>self.username</code>。在</p>