当前位置: 首页 > 面试题库 >

在Python中的类中合并

商璞
2023-03-14
问题内容

我想在一个类中使用Pool,但是似乎有问题。我的代码很长,我创建了一个小演示变量来说明问题。如果您能给我下面可行的代码变体,那就太好了。

from multiprocessing import Pool

class SeriesInstance(object):
    def __init__(self):
        self.numbers = [1,2,3]
    def F(self, x):
        return x * x
    def run(self):
        p = Pool()
        print p.map(self.F, self.numbers)


ins = SeriesInstance()
ins.run()

输出:

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/usr/lib64/python2.7/threading.py", line 504, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib64/python2.7/multiprocessing/pool.py", line 319, in _handle_tasks
    put(task)
PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup __builtin__.instancemethod failed

然后挂起。


问题答案:

看起来由于函数传递到工作线程(腌制)的方式的原因,您不能不幸地使用实例方法。我的第一个想法是使用lambda,但是事实证明,内置的pickler不能将它们序列化。可悲的是,解决方案只是在全局名称空间中使用一个函数。您仍然可以将其设置为实例属性,看一下:

from multiprocessing import Pool

def F(x):
    return x * x

class SeriesInstance(object):
    def __init__(self):
        self.numbers = [1,2,3]
        self.F = F

    def run(self):
        p = Pool()
        out = p.map(self.F, self.numbers)
        p.close()
        p.join()
        return out

if __name__ == '__main__':
    print SeriesInstance().run()


 类似资料:
  • 问题内容: 我非常确定应该有一种更Python化的方法来执行此操作-但我想不起来:如何将二维列表合并到一维列表中?有点像zip / map,但是有两个以上的迭代器。 示例-我有以下列表: 我希望有 到目前为止,我想出的是: 但这对我来说似乎不是很优雅/ Pythonic。除了不检查2D数组中的所有“线”是否都具有相同的长度,可以相互添加等等之外,还有什么更好的方法呢? 问题答案:

  • 问题内容: 我有2个列表,每个列表大小相等,并且有兴趣将这两个列表合并并将其写入文件。 -结果列表应类似于[(1,2 ,,(2,3),(3,4),(5,5)] 之后,我希望将其写入文件。我怎样才能做到这一点? 问题答案: 文件中的结果输出为:

  • 问题内容: 什么是Java中的综合类?为什么要使用它?如何使用? 问题答案: 例如,当您有一个switch语句时,java创建一个以$开头的变量。如果要查看此示例,请查看其中包含switch语句的类的java反射。当您在类中的任何地方至少有一个switch语句时,您将看到这些变量。 要回答您的问题,我认为您不能访问(除了反射)综合类。 如果要分析的类(通过反射)一无所知,并且需要了解有关该类的非常

  • 问题内容: 如何在两个数据框中找出同名列之间的区别?我的意思是,我有一个名为X的数据框A和一个名为X的数据框B,如果这样做的话,我将获得A和B的通用X值,但是我如何获得“非通用”的X值? 问题答案: 如果将合并类型更改为,这将添加一列以告诉您这些值是否仅是左/左右/右: 然后,您可以在col上过滤结果合并的df : 您也可以使用和否定掩码以查找不在B中的值:

  • 我试图将一个简单的函数与python中的两个独立数据数组相匹配。我知道我需要将自变量的数据组合到一个数组中,但是当我尝试拟合时,传递变量的方式似乎仍然有问题。(之前有几篇与此相关的帖子,但都没有太大帮助。) 我得到的错误是, 什么是的长度?是的长度吗?我到底做错了什么?

  • 问题内容: 我在Python中使用熊猫有数据框。其中两列分别命名为和。我想创建一个名为 的变量。 问题答案: 如果两个列都是字符串,则可以直接将它们连接起来: 如果其中一列(或两列)都不是字符串类型,则应首先将其转换为字符串, 这样做时要小心! 如果需要连接多个字符串列,可以使用: 其中是分隔符。

  • 问题内容: 我刚刚开始自学如何编码。我目前正在阅读适用于python 3的 Think Python 2 ,并且在讲授该功能时,给出了输出示例。然后声明“在类别的意义上使用了“类”一词;类型是值的类别。” 令我困惑的部分是函数输出类而不是类型。另外,我不确定类型和类之间的区别。是字符串,浮点数和“值”类型的整数类,还是同一件事? 我已经查询了一下,但是找不到我的特定问题的答案,或者太简单了,无法理

  • 我最近才开始自学如何编码。我目前正在阅读Think Python2 for Python3,当它介绍函数时,它给出了输出