Доступ к атрибуту уровня класса другого класса? - PullRequest
2 голосов
/ 21 июня 2020

Я могу получить доступ к атрибуту уровня класса класса (B) в методе другого класса (A), но я не могу получить доступ к нему на уровне класса класса A. Проблема может быть решена путем определения B после A, но почему это так, и как я могу получить доступ к этому сохранению класса B после класса A.

Я ищу решение без наследования класса и без создания объекта класса B внутри __init__ класса A.

Смотрите код здесь:

class A:
    a=B.b # This doesn't work
    def __init__(self):
        print(B.b) #This works
class B:
    b=[1,2,3]

1 Ответ

1 голос
/ 21 июня 2020

Предполагая, что вам не нужно использовать атрибут при определении A ( например, , для аргумента по умолчанию), вы можете просто назначить его позже :

class A:
    def __init__(self):
        print(B.b)
class B:
    b=[1,2,3]
A.a=B.b

или даже

class A:
    def __init__(self):
        print(B.b)
class B:
    A.a=b=[1,2,3]

, если вы считаете, что классы настолько тесно связаны, что назначение одного внутри другого менее удивительно, чем одно за пределами обоих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...