【发布时间】:2020-10-10 23:54:47
【问题描述】:
我可以在另一个类 (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]
【问题讨论】:
-
@alaniwi 是的,我说可以这样解决,但为什么不能用这个命令?
-
当您尝试实际运行
A.__init__时,B.b已经存在。您尝试设置a=B.b的情况并非如此。 -
@user2357112supportsMonica 是的,我得到了为什么...谢谢的答案
-
@alaniwi 你能给出示例代码吗?
-
@alaniwi 确切的用例是较低的类是
Student类,它具有类级属性allStudents,它是一个列表。每当创建一个学生对象时,它就会被插入到__init__方法内的列表中。现在上层是Department,我想访问这个allStudent列表。
标签: python class oop class-attributes