我在python中实现borg时遇到问题.我在这个问题的答案中找到了一个例子,但它不适合我,除非我遗漏了一些东西.这是代码:
class Config:
"""
Borg singleton config object
"""
__we_are_one = {}
__myvalue = ""
def __init__(self):
#implement the borg pattern (we are one)
self.__dict__ = self.__we_are_one
self.__myvalue = ""
def myvalue(self, value=None):
if value:
self.__myvalue = value
return self.__myvalue
conf = Config()
conf.myvalue("Hello")
conf2 = Config()
print conf2.myvalue()
Run Code Online (Sandbox Code Playgroud)
我认为这是打印"你好",但对我来说它只是打印一个空白行.任何想法为什么会这样?
为noob Python问题道歉,但我已经坚持了很长时间.
我正在使用python套接字从服务器接收一些数据.我这样做:
data = self.socket.recv(4)
print "data is ", data
print "repr(data) is ", repr(data)
Run Code Online (Sandbox Code Playgroud)
控制台上的输出是这样的:
数据是
repr(数据)是'\ x00\x00\x00\x01'
我想将这个基本上包含4个字节数字的字符串转换为int - 或者实际上是C中的长字符串.如何将此数据对象转换为我可以轻松管理的数值?
我正在尝试在PyQt4中编写一个视频应用程序,我使用Python ctypes挂钩到一个旧的传统视频解码器库.该库为我提供了32位ARGB数据,我需要将其转换为QImage.我的工作方式如下:
# Copy the rgb image data from the pointer into the buffer
memmove(self.rgb_buffer, self.rgb_buffer_ptr, self.buffer_size)
# Copy the buffer to a python string
imgdata = ""
for a in self.rgb_buffer:
imgdata = imgdata + a
# Create a QImage from the string data
img = QImage(imgdata, 720, 288, QImage.Format_ARGB32)
Run Code Online (Sandbox Code Playgroud)
问题是ctypes将数据输出为类型" ctypes.c_char_Array_829440",我需要将其转换为python字符串,以便我可以构造一个QImage.我的复制机制目前每张图像花费近300毫秒,所以它很慢.该过程的解码和显示部分仅需要大约50ms.
任何人都可以想到我可以采取的任何狡猾的快捷方式来加快这个过程,并避免需要复制缓冲区两次,因为我目前正在做?