小编chr*_*sm1的帖子

Python borg模式问题

我在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)

我认为这是打印"你好",但对我来说它只是打印一个空白行.任何想法为什么会这样?

python design-patterns

7
推荐指数
1
解决办法
7690
查看次数

处理python套接字recv的输出

为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中的长字符串.如何将此数据对象转换为我可以轻松管理的数值?

python sockets

6
推荐指数
1
解决办法
2万
查看次数

尽快将ctypes数据转换为python字符串

我正在尝试在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.

任何人都可以想到我可以采取的任何狡猾的快捷方式来加快这个过程,并避免需要复制缓冲区两次,因为我目前正在做?

python ctypes pyqt4

3
推荐指数
1
解决办法
2308
查看次数

标签 统计

python ×3

ctypes ×1

design-patterns ×1

pyqt4 ×1

sockets ×1