<p>您的<code>Admin</code>类有一个<code>privilegis</code>属性,该属性初始化<code>Privilegis</code>的实例。<code>__init__()</code>方法定义了如何初始化类,在您的例子中,它需要一个<code>privilegis_type</code>作为参数。在</p>
<p>如果希望在实例化时将此特权传递给<code>Admin</code>,请将该参数添加到其<code>__init__</code>方法中,并在内部将其传递给<code>privilege</code>属性。在</p>
<pre><code>class Admin(User):
def __init__(self, first_name, last_name, location, payment_method, privilegis_type): # add privilegis type
super().__init__(first_name, last_name, location, payment_method)
self.privilegis = Privilegis(privilegis_type) # pass that privilegis type, needed by the Privilegis class
class Privilegis:
def __init__(self, privilegis_type):
self.privilegis_type = ['Allow to delete users', 'Allow to rename users', 'Allow to ban users']
def show_privilegis(self):
print('Special admins privilegis are: ' + ', '.join(self.privilegis_type)) # fixed that also
</code></pre>
<p>虽然在代码中有两个主要错误:</p>
<ul>
<li><code>Privilegis</code>类根本没有使用参数。您可以维护您的原始代码,<strong>删除</strong>使用一个合理的默认值</strong>,这取决于您要做什么。在</li>
<li><code>self.privilegis</code>未在<code>Privilegis</code>内的任何地方定义。我相信你希望它是<code>self.privilegis_type</code></li>
</ul>
<p>这意味着拥有这样的东西:</p>
^{pr2}$