Совместное использование переменных класса в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Совместное использование переменных класса в Python

Сообщение Anonymous »

Просмотрев множество сообщений о переменных класса и переменных экземпляра, я не понимаю, как распределять переменные между классами.

Код: Выделить всё

#!/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_())
В приведенном выше коде основной класс инициирует класс один и класс два. Хотя я могу отправить значение self.txt инициированному классу One, у меня возникают две проблемы.
  • Когда я пытаюсь напечатать переменные One в printtxt класса Two, я получаю ошибки атрибута:
AttributeError: объект типа «Один» не имеет атрибута «mytext»
AttributeError: объект типа «One» не имеет атрибута «txt2»
  • Когда я пытаюсь изменить переменную txt Main в One, это не изменилось
Я хотел бы поделиться значением, созданным в любом конкретном классе, со всеми другими созданными классами (другими словами, «глобальные» переменные вверх в точку).
Концепция контроллера в примере Tkinter Брайана Окли (см. «Переключение между двумя фреймами в tkinter?» и «Как получить переменные данные из класса?»), я думаю, близка, но если кто-нибудь сможет ответить или указать мне на сообщения, которые просто объясняют это, я буду благодарен.
Спасибо за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/784 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»