Код: Выделить всё
#!/usr/bin/python3
from PyQt5.QtWidgets import (QApplication)
import sys
class One():
def __init__(self, myTextString, parent=None):
self.mytext = myTextString
self.printtxt()
Main.txt = 'another string'
self.txt2 = 'a third string'
def printtxt(self):
print('One',self.mytext)
class Two():
def __init__(self, parent=None):
self.printtxt()
def printtxt(self):
print('Two',One.txt) # Attribute Error
print('Two',One.txt2) # Attribute Error
class Main():
def __init__(self, parent = None):
self.txt = 'a string of text'
self.w = One(self.txt)
self.w1 = Two()
print(self.txt) # not changed by One
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Main()
sys.exit(app.exec_())
- Когда я пытаюсь напечатать переменные One в printtxt класса Two, я получаю ошибки атрибута:
AttributeError: объект типа «One» не имеет атрибута «txt2»
- Когда я пытаюсь изменить переменную txt Main в One, это не изменилось
Концепция контроллера в примере Tkinter Брайана Окли (см. «Переключение между двумя фреймами в tkinter?» и «Как получить переменные данные из класса?»), я думаю, близка, но если кто-нибудь сможет ответить или указать мне на сообщения, которые просто объясняют это, я буду благодарен.
Спасибо за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/784 ... -in-python