Узнать значение переменной другого класса
Подскажите, как в классе A получить доступ к переменной self.d в классе B?
Как переменной self.f класса A присвоить значение переменной self.d класса B?
class A:
def __init__(self):
self.f = 'a'
def __str__(self):
self.f = B.d #ошибка
return self.f
class B:
def __init__(self):
self.d = 'b'
def __str__(self):
return self.d
a = A()
print(a)
Ответы (1 шт):
Автор решения: AvidCoder
→ Ссылка
Для того чтобы класс A получил доступ к полю self.d класса B и присвоил значение полю self.f, можно изменить ваш код, сделав экземпляр класса B членом класса A.
Вот исправленный пример:
class A:
def __init__(self):
self.f = 'a'
self.b_instance = B() # Создаем экземпляр класса B внутри класса A
def __str__(self):
self.f = self.b_instance.d # Получаем доступ к переменной self.d из экземпляра класса B
return self.f
class B:
def __init__(self):
self.d = 'b'
def __str__(self):
return self.d
a = A()
print(a)
Также можно прибегнуть к другому решению: сделать поле self.d класса B статическим:
class A:
def __init__(self):
self.f = 'a'
def __str__(self):
self.f = B.d # Обращаемся к статической переменной d класса B напрямую
return self.f
class B:
d = 'b' # Сделаем переменную d статической
def __str__(self):
return self.d
a = A()
print(a)