Python 将变量从类调用到另一个类

Python 将变量从类调用到另一个类,python,Python,我发现自己处于这种情况: class C2(x2, f2): def __init__(self): super(x2, self).__init__() self.setupUi(self) 以及: 我希望能够将文本变量传递给classC2。我尝试使用以下方法: class C2(x2, f2): def __init__(self): super(x2, self).__init__() self.setupU

我发现自己处于这种情况:

class C2(x2, f2):
    def __init__(self):
        super(x2, self).__init__()
        self.setupUi(self)
以及:

我希望能够将文本变量传递给class
C2
。我尝试使用以下方法:

class C2(x2, f2):
    def __init__(self):
        super(x2, self).__init__()
        self.setupUi(self)
        def f3(t):
            var = t
            self.v2.setText(t)

# Here the variable 'text' from C1 is assigned to a lineedit in C2

class C1(x1, f1):
    def __init__(self):
        super(x1, self).__init__()
        self.setupUi(self)
        text = self.FMB.text()
        C2.f3(text)

但不可能执行已注释的任务。我该怎么做呢?

你的术语有点混乱。您想将文本传递给类C2(意味着C2的每个实例都有相同的文本),还是传递给C2的一个实例(意味着每个实例都可以有自己的文本值)


假设您是指后者,则必须更改
f3()
以添加
self
参数。您还需要将C2的实例传递到
C1中。

正如注释中提到的@cricket\u 007,您不能调用
C2.f3()
,因为
f3
不是类函数,但它是
C2
的方法,这是不同的

所以你能做什么

1) 调用
f3
作为一种方法:

class C2:
    def f3(self, t):
        ...
然后像这样使用它:

C2().f3(text)

2) 将
f3
设为类函数,并按代码中的原样使用它:

class C2:
    @classmethod
    def f3(cls, t):
        ....

f3
不是类函数。您不能调用
C2.f3(文本)
。如果您想在它的实例中设置任何内容,
C2.v2
需要是实例变量,而不是类变量。什么是
x1、x2、f1、f2
?请出示一张好的,谢谢。它们是从设计器加载ui文件的参数。谢谢。我将应用提供的选项并对获得的结果进行评论。应用此方法可以调用类别C1的变量,但是,当使用此变量将其分配给lineEdit时,此对象不会收集该变量(lineEdit)。“self”函数是否可能不被视为上述C2类中声明的对象?@Patrick,您能否更新原始问题,添加您对代码所做的更改,并指出“lineEdit”未分配给所需变量的位置?现在我看不出它可能是什么。或者,对于第一个问题,如果问题已解决,您可以跳过第一个问题的更新,并询问有关新问题的新问题。我为我延迟回答而道歉。一旦应用,我将对获得的结果进行评论。谢谢
class C2:
    @classmethod
    def f3(cls, t):
        ....