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)
以及:
我希望能够将文本变量传递给classC2
。我尝试使用以下方法:
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):
....