调用具有自身Python的类函数

2024-09-28 01:30:35 发布

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

当我试图从另一个类调用一个函数时,我会遇到很多错误。你知道吗

我想让代码从不同的类运行函数,就像我这样做时一样自我功能因为我不需要其他类的变量。你知道吗

class A(QtWidgets.QMainWindow):
    def A_a(self):
        self.A_b()
        # Bunch of code
    def A_b(self):
        self.A_c()
        # More of code
    def A_c(self):
        # Even more code

class B(QtWidgets.QMainWindow):
    def B_a(self):
    # Call Class A Function A
     App.A_a(self)

这就产生了错误AttributeError:“B”对象没有属性“A\u A”。在我的例子中,还有其他方法可以从不同的类调用类函数吗?你知道吗

编辑:

我用这个代码:

class A(QtWidgets.QMainWindow):
def A_a(self):
    global SelfVariable
    SelfVariable = self
    self.A_b()
    # Bunch of code
def A_b(self):
    self.A_c()
    # More of code
def A_c(self):
    # Even more code

B类(qtwidts.QMainWindow): def Bïa(自身): #调用A类函数 应用程序A(自变量)


Tags: of函数代码selfdefmore错误code
1条回答
网友
1楼 · 发布于 2024-09-28 01:30:35

我想你想要的是

class B(QtWidgets.QMainWindow):
    def B_a(self):
        # Call Class A Function A
        A.A_a(self) # NOTE THIS WILL GIVE YOU AN ERROR SEE BELOW!

但是它会抱怨,因为A.A_a需要一个类型为A的实例作为它的第一个参数,而不是类型为B。。。您可以使B成为A的子类,以便调用A的方法之一。。。但是你可以做self.A_a

class B(A):
    def B_a(self):
        # Call Class A Function A
        self.A_a()

或者,可能建议您可以对共享代码使用mixin

class MyMixin:
    def A_c(self):
        #some stuff

class A(QtWidgets.QMainWindow, MyMixin):

    def A_a(self):
        self.A_c()
        # More of code

class B(QtWidgets.QMainWindow, MyMixin):

    def B_a(self):
        self.A_c()
        # More of code

甚至只是一个泛型函数

def A_c(someObject):
   #doWhateverWithSomeObject()

class A(QtWidgets.QMainWindow):

    def A_a(self):
        A_c(self)

class B(QtWidgets.QMainWindow):

    def B_a(self):
        A_c(self)

另一个选择是使一个\u c成为类A或类B的静态方法,或者其他什么。。。。基本上,底线是有办法做你想做的事。。。但如果没有更多的信息,很难说什么是正确的方法

相关问题 更多 >

    热门问题