cuốn sách gpt4 ai đã làm

python - đa xử lý: lỗi gộp và tẩy - Lỗi tẩy: không thể ngâm :Tra cứu thuộc tính __buildin__.instancemethod không thành công

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 19:12:47 26 4
mua khóa gpt4 Nike

Tôi có hai tập tin:

x.py

lớp BF(đối tượng)
định nghĩa __init__():
.
.
def thêm (tự, z):
.
.

y.py

từ y nhập BF
def FUNC((a,b,bf))
.
.
bf.add(x)
.
.
trả lại bạn trai

.
.
nếu __name__ == '__main__':
pool = multiprocessing.Pool(3)
cho tôi trong phạm vi(len(sl)):
bf_set.append(BF())
kết quả = pool.map(FUNC,zip(sl, itertools.repeat(aa), bf_set))

Tôi cũng đã thử xác định BF trong FUNC nhưng vẫn nhận được:

PicklingError: Không thể chọn : tra cứu thuộc tính __buildin__.instancemethod không thành công

Tôi đã đọc một số bài đăng về các vấn đề liên quan, nhưng chúng có pool.map() riêng trong lớp, vì vậy những giải pháp đó không thể áp dụng cho vấn đề này (tôi đoán vậy).

Có ý tưởng gì không?

câu trả lời hay nhất

Về cơ bản tôi sẽ sử dụng những điều trên nhưng chuyển đổi nó thành mã hoạt động. Nếu sử dụngthì là, không có vấn đề gì với việc tuần tự hóa. tôi đang sử dụng đa xử lý Cái nĩa được gọi làpathos.multiprocessing , sử dụng thì làthay vìdưa chua .

>>> def FUNC((a,b,bf)):
... z = a+b
... bf.add(z)
... trả lại bạn ơi
...
>>> lớp BF(đối tượng):
... def add(self, z):
... self.z += z
... def __init__(self):
... self.z = 0
...
>>> từ pathos.multiprocessing nhập khẩu ProcessPool dưới dạng Pool
>>> bể bơi = Bể bơi()
>>>
>>> f = BF()
>>> f.add(1)
>>>fz
1
>>>
>>> FUNC((0,1,f))
<__main__.BF đối tượng tại 0x10d387f50>
>>>
>>> FUNC((0,1,f)).z
2
>>>
>>> sl = [BF() cho i trong phạm vi (10)]
>>> kết quả = pool.map(FUNC, zip(range(len(sl)), range(len(sl)), sl))
>>> [bf.z cho bf trong kết quả]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

Điều này hoạt động vì bệnh hoạnsử dụngthì là , có thể tuần tự hóa hầu hết mọi thứ trong python.

>>> nhập khẩu thì là làm dưa chua
>>> pickle.loads(pickle.dumps(bf.add))
>
>>> pickle.loads(pickle.dumps(BF.add))

获取bệnh hoạnthì làhiện hữu:https://github.com/uqfoundation

Giới thiệu về python - Đa xử lý: Lỗi gộp và tẩy - Lỗi tẩy: Không thể chọn : Tra cứu thuộc tính __buildin__.instancemethod không thành công, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/12396451/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress