, поэтому я пытаюсь понять, как создавать дочерние классы в python.Понимание наследования с классами python
Так ив создал perent и класс ребенка, но я просто не могу понять, как заставить их работать
так что это мой текущий код
from abc import ABCMeta, abstractmethod
class Persion(object):
__metaclass__ = ABCMeta # sets the metaclass to a abstract base class . that means we never call this class directley insted its used for child classes to inhearrit
def __init__(self, name, gender):
self.name = name
self.gender = gender
def talk(self):
print("hi my name is " + self.name + " and I am a " + self.gender + ".")
@abstractmethod
def PersionType(self):
"""Returns a string of the childs type"""
pass
class Player(Persion):
def __int__(self,speed):
self.name = name
self.gender = gender
self.speed = speed
self.posX = 0
self.posY = 0
def moveXY(self, X, Y):
self.posX = X
self.posY = Y
def PersionType(self):
return 'Player'
player=Persion("Ben","m")
hero = Player(player,30)
hero.moveXY(20,20)
print("you are now at ", hero.posX, "," , hero.posY)
print("your speed is ", hero.speed)
print("your gender is ", hero.gender)
hero.talk()
поэтому конечный результат я хочу, чтобы эти функции работать. , но что-то пошло в строю, чтобы наследовать то, что я хочу узнать.
hero.moveXY(20,20)
print("you are now at ", hero.posX, "," , hero.posY)
print("your speed is ", hero.speed)
print("your gender is ", hero.gender)
hero.talk()
им получать ошибки Sutch в
line 36, in <module>
print("your speed is ", hero.speed)
AttributeError: 'Player' object has no attribute 'speed'
Я делаю это, чтобы помочь мне понять, как inheratince работает в питона.
Благодарю вас, вы так хорошо объяснили. Я не понимал, что это было нечто простое, как орфографическая ошибка. Так что он делает сеанс, но я до сих пор не совсем понимаю, что линия super (Player, self) .__ init __ (имя, пол) Я получаю приблизительную идею о том, что она делает. устанавливая значения из класса supper/parent, но я не понимаю, что делает функция super(). – skyzzle