我可以在另一个类(A)的方法中访问类(B)的类级别属性,但无法在类A的类级别上访问它。 可以通过在A之后定义B来解决该问题,但是为什么要这样,以及如何在A类之后访问保持B的类呢。
我正在寻找没有类继承并且没有在类A的__init__
中创建类B的对象的解决方案。
在此处查看代码:
class A:
a=B.b # This doesn't work
def __init__(self):
print(B.b) #This works
class B:
b=[1,2,3]
答案 0 :(得分:1)
假设您在定义A
(默认参数为 eg )时无需使用该属性,只需将其分配为稍后:
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]
如果您认为这些类之间的联系如此紧密,以至于在一个内部另一个内部进行分配要比在两个外部外部进行分配都感到惊讶。