Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Why doesn't my *= operator work?

Boost , Boost.Python , Chapter 4. Frequently Asked Questions (FAQs)

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Q:Я экспортировал свой класс на питон со многими перегруженными операторами. Для меня это прекрасно, кроме оператора<*=>. Это всегда говорит мне, что «не может умножить последовательность с не int-типом». Если я использую<p1.__imul__(p2)>вместо<p1*= p2>, он успешно выполняет мой код. Что со мной не так?

А:С тобой все в порядке. Это ошибка в Python 2.2. Такой же эффект можно наблюдать и в Pure Python (многое можно узнать о происходящем в Boost). Python, играя с классами нового стиля в Pure Python.

>>> class X(object):
...     def __imul__(self, x):
...         print 'imul'
...
>>> x = X()
>>> x *= 1

Чтобы решить эту проблему, достаточно обновить Python до версии 2.2.1 или более поздней.


PrevUpHomeNext

Статья Why doesn't my *= operator work? раздела Boost.Python Chapter 4. Frequently Asked Questions (FAQs) может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 4. Frequently Asked Questions (FAQs) ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 05:06:31/0.0051150321960449/1