Метаклассы Python против декораторов классов

Для тех, кто использует Symfony2 / 3, и задается вопросом, почему вы получаете эту ошибку. Если вы используете «mapping_types», вы можете столкнуться с этой ошибкой. Причина в том, что «mapping_types» помещен на неправильном уровне. Например:

doctrine:
  dbal:
    mapping_types:
        set: string

Это «mapping_types» должно быть размещено на этом уровне:

doctrine:
dbal:
    #To counter the error caused by 'mapping_types'
    connections:
        default:
            server_version: %database_server_version%
            mapping_types:
                set: string

Надеюсь, это поможет

Я нашел решение здесь : https://github.com/doctrine/DoctrineBundle/issues/327

37
задан Chris 18 June 2012 в 16:34
поделиться

1 ответ

Из-за политики происхождения , вы не можете сделать XMLHttpRequest из вашего домена в другой домен. Например, вы не можете использовать http: //twitter.com / ... URL-адреса, если ваш скрипт не был загружен с twitter.com . Если ваш скрипт загружается с http: // localhost / , запрос AJAX также должен перейти на localhost.

но это довольно продвинутая часть вашего вопроса, поэтому позвольте мне привести более простые примеры).

Например, предположим, вы хотите создать объект класса X так, чтобы печатал X ] (или, конечно, в Python 3 print (X) ;-) отображает peekaboo! . Вы не сможете сделать это без специального метакласса, потому что переопределение метакласса __ str __ является здесь решающим действующим лицом, то есть вам понадобится def __str __ (cls): return «peekaboo!» в настраиваемом метаклассе класса X .

То же самое относится ко всем магическим методам, то есть ко всем видам операций, применяемых к самому объекту класса (в отличие от операций, применяемых к его экземпляры ,

41
ответ дан 27 November 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: