从子级访问引用其他模块的父级成员的方法

2024-06-26 17:51:14 发布

您现在位置:Python中文网/ 问答频道 /正文

Python新手。为这个头衔道歉。已经搜索了几天这个问题:S

我来自一个PHP背景,在那里我可以在自己的文件中创建类,然后从任何地方调用这些类,只要我有对它们的引用。你知道吗

例如:

  • 需要A级的Z级。

  • 然后让B级扩展到A级。

  • 然后可以从类B调用类Z上的方法。

我希望有一个父类,它包含其他类可以扩展的方法和成员,这样我就不会在每次创建一个以自己的方式不同但又与其他类相似的类时重新发明轮子。你知道吗

也许我对Python中模块如何工作的理解是错误的?下面是一个我想要达到的目标的例子。我需要在一个模块中包含所有这些类吗?有人能解释一下我尝试做什么的过程吗?你知道吗

import Z

class A():
    def __init__(self):
        self.varZ = Z()
        self.some_value = None

    def a_setter_function(self, value):
        self.some_value = value

然后扩展类,例如从类B到类X

import A

class B(A):
    def some_function(self):
        something = self.varZ.do_something_from_z_class()

    def set_value(self, value):
        self.a_setter_function(value)

总是提高

'ClassB' object has no attribute 'varZ'

我从类B调用'a\u setter\u function()'没有问题

也可以从类A调用varZ上的方法

我能想到的唯一解决方案是在类a中有一个方法(从类B调用),它从类Z调用方法

为什么我不能从类B通过其父类a调用类Z的方法?你知道吗


Tags: 模块方法importselfvaluedeffunctionsome