返回信息流我用PyQt写了个界面,然后需要获取界面中文本框中的数据,即想在LightClientFactory的send_tmp_message方法中获取到Example类中initUI方法中的jiangeEdit的数据,这两个类在同一个文件中,我是这样写的Example.initUI(Example).jiangeEdit.text();
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
jiange = QtGui.QLabel(u'客户端向服务器端发送数据时间间隔') # 时间间隔
jiangeEdit = QtGui.QLineEdit()
class LightClientFactory(ClientFactory):
def send_tmp_message(self):
import datetime,json,random
now=datetime.datetime.now()+datetime.timedelta(0,60)
time_str=now.strftime('%Y-%m-%d %H:%M:%S')
time_before=(now-datetime.timedelta(0,10)).strftime('%Y-%m-%d %H:%M:%S') # 10s before
value = Example.initUI(Example).jiangeEdit.text();
但是运行之后出现如下错误,求问如何解决呢
2017-09-17 23:12:46+0800 [-] Unhandled error in Deferred:
2017-09-17 23:12:46+0800 [-] Unhandled Error
Traceback (most recent call last):
File "F:\moniceshi\new\tcp-server-multi\qtreactor\qt4base.py", line 231, in _qt_timeout
self._iterate(None, True)
File "F:\moniceshi\new\tcp-server-multi\qtreactor\qt4base.py", line 237, in _iterate
self.runUntilCurrent()
File "D:\python2.7\lib\site-packages\twisted\internet\base.py", line 825, in runUntilCurrent
call.func(*call.args, **call.kw)
File "D:\python2.7\lib\site-packages\twisted\internet\task.py", line 239, in __call__
d = defer.maybeDeferred(self.f, *self.a, **self.kw)
--- <exception caught here> ---
File "D:\python2.7\lib\site-packages\twisted\internet\defer.py", line 149, in maybeDeferred
result = f(*args, **kw)
File "F:\moniceshi\new\tcp-server-multi\client\TCPClient.py", line 266, in send_tmp_message
value9 = Example.initUI(Example).jiangeEdit.text()
exceptions.TypeError: unbound method initUI() must be called with Example instance as first argument (got pyqtWrapperType instance instead)
这是一条镜像帖。来源:北邮人论坛 / python / #19309同步于 2017/9/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
小白求助:怎么在某个类中调用另一个类中某个方法中的变量
qwertasdfg1
2017/9/17镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
class A:
x = 1 类变量
def __init__ blablabla
定义实例变量
class B
def foo():
print A.x
试试看
【 在 qwertasdfg1 的大作中提到: 】
: 抱紧大腿,具体来说怎么写呢
如果没加classmethod,就是个成员方法吧,那当然不能用类来调用,要用实例调用这个方法,self参数是解释器自己传的,不需要你加上去。如果加了,就可以直接Example.init(),用实例调用也行。
谢谢,我试了下这种写法是可以的,但是我想获取到的是方法initUI()中的变量jiangeEdit,而不是类中的变量
【 在 jackling 的大作中提到: 】
: class A:
: x = 1 类变量
: def __init__ blablabla
: ...................
classmethod没有加,我想调用方法initUI()中的变量,该怎么调用呢,变量前加不加self都不行呀,谢谢您
【 在 jadfi 的大作中提到: 】
: 如果没加classmethod,就是个成员方法吧,那当然不能用类来调用,要用实例调用这个方法,self参数是解释器自己传的,不需要你加上去。如果加了,就可以直接Example.init(),用实例调用也行。
让变量的作用域在类中或实例中,而不是在函数中。函数中的变量是不能直接访问的
【 在 qwertasdfg1 的大作中提到: 】
: 抱紧大腿,具体来说怎么写呢
那你就只能从 实例化的对象中去取了吧
a = A()
print a.x
【 在 qwertasdfg1 的大作中提到: 】
: 谢谢,我试了下这种写法是可以的,但是我想获取到的是方法initUI()中的变量jiangeEdit,而不是类中的变量