Теперь следующий код прекрасно работает с Python 3.7
class A:
class B:
def __init__(self):
print("B")
class C:
def __init__(self):
self.b = A.B()
def main():
a = A.C()
if __name__ == "__main__":
main()
. Он печатает B
на экране.
Однако, с небольшой модификацией, которая пытается представить класс данных,код не может работать хорошо.
from dataclasses import dataclass
class A:
class B:
def __init__(self):
print("B")
@dataclass
class C:
b = A.B()
def main():
a = A.C()
if __name__ == "__main__":
main()
Отчеты Python - для b = A.B()
- NameError: name 'A' is not defined
.
Кто-нибудь знает, как решить эту проблему, чтобы добиться того же результата с помощью класса данных? И почему это говорит name 'A' is not defined
?