gpt4 book ai didi

Python - 访问父成员

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:26 24 4
gpt4 key购买 nike

我在尝试弄清楚如何让成员类在属于外部模块时从其父类访问数据时遇到了停滞。

基本上,这是可行的(B 类可以访问父类的方法,如下所示:A.say_hi(A)):

class A:
def __init__(self):
print("Initializing parent object...")
self.child = self.B()

class B:
def __init__(self):
print("Initializing child...")
A.say_hi(A)

def say_hi(self):
print("A class says hi")

但是,如果类开始变得特别大,这会变得非常困惑,因此我一直将额外的类放在文件中并内联导入它们。问题是,如果我在其中定义了类 B 时尝试使用“import B.py”,我将无法再让成员类访问其父类的成员和函数。

有什么方法可以在不将成员类留在与父类相同的文件中的情况下获得原始行为?

最佳答案

实际上,在您的示例中,您无法访问类 B 中的 A 实例。并且代码 A.say_hi(A) 确实有效,但它是错误的。这已在对您的问题的评论中说过。

如果您希望能够访问父实例,那么您可以这样做:

模块b:

class B(object):
def __init__(self, parent):
self.parent = parent

def say_hi(self):
print 'Child says hi to his parent %s' % (
self.parent.__class__.__name__
)
self.parent.say_hi()

模块a:

from b import B

class A(object):
def __init__(self):
self.b = B(self)

def say_hi(self):
print 'Parent says hi!'

关于Python - 访问父成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8496553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com