 <p>There are <strong>three main problems</strong> with your code:</p> <ol> <li><p>Change <code>__int__</code> to <code>__init__</code>. Your instance isn't getting initialized, which is why you get the <code>no attribute 'speed'</code> error.</p></li> <li><p>Your subclass (the class that's inheriting, which in this case is <code>Player</code>) should have an <code>__init__</code> method that takes all the arguments you want associated with it. You can pass the ones used by the superclass (<code>Persion</code>) to the superclass's <code>__init__</code>. That means probably changing the <code>__init__</code> method to:</p> <pre><code>class Player(Persion): def __init__(self, name, gender, speed): super(Player, self).__init__(name, gender) self.speed = speed self.posX = 0 self.posY = 0 </code></pre></li> <li><p>Now, when creating the instances, you need only create an instance of the subclass. It will inherit the methods from the superclass:</p> <pre><code>hero = Player('Ben', 'm', 30) </code></pre></li> </ol> <p>With these changes, these lines:</p> <pre><code>print("you are now at ", hero.posX, "," , hero.posY) print("your speed is ", hero.speed) print("your gender is ", hero.gender) hero.talk() </code></pre> <p>Now produce this output:</p> <pre><code>you are now at 20 , 20 your speed is 30 your gender is m hi my name is Ben and I am a m. </code></pre> <p><strong>Additional small notes</strong>:</p> <ul> <li>You probably want the class to be named <code>Person</code> instead of <code>Persion</code>.</li> <li>The <code>@abstractmethod</code> method should not be needed.</li> </ul>