Я не могу понять, что я делаю неправильно, потому что, когда я пробую это в «мелком масштабе», и это работает там.
У меня есть класс с именем Play()
У меня так:
class Play():
def __init__(self):
file = open("/home/trufa/Desktop/test", "r")
self.word = random.choice(file.readlines()).rstrip()
self.errAllowed = 7
self.errMade = 0
self.errList = []
self.cheatsAllowed = 2##chetas not incrementing
self.cheatsMade =0
self.wordList = ["*"]*len(self.word) ##this one is the one I want to have available in another class
...
Затем у меня есть другой класс под названием Score()
class Score(Play):
def __init__(self):
self.initialScore = 0
def letterGuess(self):
self.initialScore += 1
return self.errList
...
Я создал оба экземпляра:
game = Play()
points = Score()
И если я сделаю:
print points.letterGuess()
Это выдаст мне ошибку:
Traceback (most recent call last):
File "/home/trufa/workspace/hangpy/src/v2.py", line 188, in <module>
startGame()
File "/home/trufa/workspace/hangpy/src/v2.py", line 134, in startGame
print points.letterGuess()
File "/home/trufa/workspace/hangpy/src/v2.py", line 79, in letterGuess
return self.errList
AttributeError: Score instance has no attribute 'errList'
Я не понимаю, почемутак как я могу сделать это без каких-либо проблем:
class One():
def __init__(self):
self.list= [1,2]
class Two(One):
def meth(self):
return self.list
uan = One()
tu = Two()
print uan.list
print tu.meth() ## Both output [1,2]
Я очень плохо знаком с ООП, поэтому я мог делать все виды глупых ошибок, но я не могу понять где!
Я думаю Я разместил весь соответствующий код, но я думаю, что вы, возможно, ошибка в другом месте, я могу предоставить ее.
Как я сказал, яЯ очень новичок, так что это может не иметь ничего общего с наследованием. Я просто думаю, что это называется, когда вы получаете «что-то» из другого класса (сейчас вы должны кричать на экран)