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_setter_function()'没有问题。
也可以从A类调用varZ上的方法。
我能想出的唯一解决方案是在A类中调用一个方法(从B类调用),该方法从类Z调用该方法。即我试图从B类调用的方法。
为什么我不能通过其父类A?
从类B调用Z类的方法