擅长:python、mysql、java
<p>使用<strong><code>self</code></strong>调用函数,在代码<code>CharacterGenerator.printcharacter(self, ...</code>中,您没有将self作为第一个参数传递,所以正确的<code>printcharacter</code>调用假定为:</p>
<pre><code>self.printcharacter(statblock, characteristic_rolls, skill_category_modifiers, skill_category_bonuses)
</code></pre>
<p>您可以在<a href="https://stackoverflow.com/questions/2709821/what-is-the-purpose-of-self-in-python">What is the purpose of self?</a>上阅读有关<code>self</code>的更多信息。在</p>
<p><strong>简而言之</strong>:如果您在没有<a href="https://docs.python.org/2/library/functions.html#staticmethod" rel="nofollow noreferrer">staticmethod</a>或<a href="https://docs.python.org/2/library/functions.html#classmethod" rel="nofollow noreferrer">staticclass</a>修饰符的类定义中定义了方法,那么它将接受类实例方法作为第一个参数被调用(按照惯例,第一个参数称为<code>self</code>),则不应直接传递该参数,因为它将在调用实例方法时自动传递。在</p>
<p>我注意到<code>printcharacter</code>方法不能与<code>self</code>一起操作,因此可以将其定义为staticmethod:</p>
^{pr2}$
<p>下一个方法是:</p>
^{3}$