吾爱破jie 发表于 2020-1-9 12:30

python函数获取类中函数的参数

本帖最后由 吾爱破jie 于 2020-1-9 15:52 编辑

图一是pyqt5界面类,类继承了QWidget,这个类里面有一个def button_recognition_click(self)函数,他是一个点击事件,每次点击pyqt5上的按钮,就会触发这个事件。在这个函数里面有一个生成的变量res,如图二。
现在我的问题是将这个类中的这个函数生成的变量res传到类外面的music函数中,我用了传统的办法,传不过去,请问有什么办法吗。

Db2k 发表于 2020-1-9 12:45

本帖最后由 a865213 于 2020-1-9 12:47 编辑

那你可以传入啊= =
不会python但是你可以传入一个参数
函数内部修改传入参数不就好了吗


列如

void fuc(int &b)
{
b+=1;
}

int main()
{
   int b;
   fuc(b);
}

main函数内的b 也就是1了啊= =

zhangtaishan1 发表于 2020-1-9 12:52

传入什么意思?
如果想获取该值,你可以类中定义个类变量,然后将res值赋值给这个类变量,之后在你可以实例化后获取到这个类变量值不就可以了

fih 发表于 2020-1-9 13:14

定义个类属性变量,将res赋值给这个变量。music引用这个类实例化对象的属性就好了。
你没有把ui和逻辑分离写吗?

真的小白 发表于 2020-1-9 13:32

比如,在C#中,窗体间传值可以用委托

吾爱破jie 发表于 2020-1-9 13:55

真的小白 发表于 2020-1-9 13:32
比如,在C#中,窗体间传值可以用委托

所以在python中怎么做呢

吾爱破jie 发表于 2020-1-9 14:06

fih 发表于 2020-1-9 13:14
定义个类属性变量,将res赋值给这个变量。music引用这个类实例化对象的属性就好了。
你没有把ui和逻辑分离 ...

我一开始这样做的,但是好像在pyqt5里面的类里面定义变量,传不出去

吾爱破jie 发表于 2020-1-9 15:22

zhangtaishan1 发表于 2020-1-9 12:52
传入什么意思?
如果想获取该值,你可以类中定义个类变量,然后将res值赋值给这个类变量,之后在你可以实例化 ...

如果是普通的类就可以成功,但是在Pyqt5里面的类实例化一下就失败了

Qnly_genius 发表于 2020-1-9 15:32

x = 0

def f():
    global x
    a = 111
    print(a)
    x = a
   
f()
print(x)

函数外面定义一个变量,函数内给这个全局变量进行赋值

吾爱破jie 发表于 2020-1-9 15:51

Qnly_genius 发表于 2020-1-9 15:32
x = 0

def f():


谢谢,跟我的功能不一样,我的涉及到进程,我用子进程传参解决了
页: [1] 2
查看完整版本: python函数获取类中函数的参数