Как из одного класса перебросить переменную в другой класс? без метода global?

Код показать не могу, так как он слишком большой, пожалуйста покажите пример. У меня есть один класс A, в нем есть функция. Есть другой класс B, в нем есть функция. Если быть более точнее, то мне нужно открыть доступ переменне, так чтобы не использовать метод global, возможно ли? пожалуйста приведите пример


Ответы (3 шт):

Автор решения: Алексей Белкин

Наследуйте класс B от класса А, если Вам надо чтобы в классе B был доступ к переменным класса А

class A(object):
    def __init__(self):
        self.dataA = 10

class B(A):
    def __init__(self):
        super(B, self).__init__()
        self.dataB = 50
objA = A()
objB = B()
print(objB.dataA) #Выведет 10
→ Ссылка
Автор решения: gil9red

Можно явно передавать объект одного класса в другой:

class A:
    def __init__(self):
        self.value = 'value of A'

    def get_value(self) -> str:
        return self.value


class B:
    def __init__(self):
        self.value = 'value of B'

    def run_A(self, a: A):
        print('[run_A]')
        print(a.get_value())
        print(a.value)


a = A()
print(a.get_value())
print(a.value)
print()

b = B()
print(b.value)
print()

b.run_A(a)

Результат:

value of A
value of A

value of B

[run_A]
value of A
value of A

Можно создавать объект, который в своем поле уже будет иметь объект другого класса

...

class B:
    def __init__(self):
        self.value = 'value of B'
        self.a = A()

    def run_A(self):
        print('[run_A]')
        print(self.a.get_value())
        print(self.a.value)


b = B()
print(b.value)
print()

b.run_A()
→ Ссылка
Автор решения: Никита

Выучте концепцию наследования. Вот пример:

class A: # Создаем класс A с полем test
    def __init__(self):
        self.test = 'Test string'

class B(A): # Создаем класс B и наследуем класс A
    def __init__(self):
        super(B, self).__init__() # Вызываем метод __init__ класса A
        print(self.test) # Печатаем переменную test

B() # Вызываем клас B

# Вывод: Test string
→ Ссылка