Почему текстовый центр имеет больше приоритетов по сравнению с текстовым правом в bootstrap 4 [duplicate]

lambda в вашем примере образует закрытие. То есть, это вложенная функция, которая ссылается на объекты, доступные в охватывающей области. Каждая функция, которая создает замыкание, сохраняет объект ячейки для каждого элемента, который должен поддерживать ссылку.

В вашем примере lambda создает замыкание со ссылками на локальные переменные self и model в рамках метода __init__. Если вы где-нибудь ссылаетесь на lambda, вы можете проверить все объекты ячейки его закрытия с помощью атрибута __closure__. В вашем примере это будет выглядеть примерно так:

>>> print(func.__closure__)
(, )

Если вы удалили все другие ссылки на объекты MyModel и MyClass, показанные здесь, те, которые хранятся в ячейках, все равно останутся. Поэтому, когда дело доходит до очистки объекта, вы всегда должны явно отключать все сигналы, связанные с функциями, которые могут образовывать замыкания по соответствующим объектам.


Обратите внимание, что когда дело доходит до соединений с сигналом / слотом, PyQt рассматривает обернутые слоты C ++ и методы экземпляра Python по-разному. Контрольные числа этих типов вызываемых не увеличиваются, когда они связаны с сигналами, тогда как lambdas, определенные функции, частичные объекты и статические методы. Это означает, что если все другие ссылки на последние типы вызываемых удаляются, любые оставшиеся сигнальные соединения будут поддерживать их. Отключение сигналов позволяет при необходимости собирать собранные связанные вызовы.

Единственное исключение из вышеперечисленного - методы класса. PyQt создает специальную оболочку при создании подключений к ним, поэтому, если все другие ссылки на них удаляются, и сигнал испускается, будет генерироваться исключение, например:

TypeError: 'managedbuffer' object is not callable

Вышеприведенное должно применяться к PyQt5 и большинству версий PyQt4 (4.3 и выше).

31
задан rememberlenny 28 March 2013 в 16:43
поделиться

3 ответа

Я должен немного не согласиться с ответами Джона и Уотсона, так как ...

Да, это Может (в зависимости от утверждения)

вопрос:

Выполняет ли упорядочение классов CSS в элементе DOM приоритет оператора?

Что зависит от данного утверждения.

Заказ HTML не типично Материя

Следующие эквивалентны , когда дело доходит до прямого вызова класса (т.е. .class1 или .class2) или к комбинированному вызову (например, .class1.class2 или .class2.class1):

<div class="class1 class2"></div>
<div class="class2 class1"></div>

Случаи, в которых утверждение Приоритет выше HTML может быть затронут на основе HTML-заказа

Основное место, где

Пример 1 Fiddle , используя следующий код для поиска в соответствии с / g6] не будет иметь никакого изменения цвета шрифта, и каждый div будет иметь разные свойства из-за упорядочения классов:

[f 2]

Пример 2 Fiddle , используя следующий код для поиска в начала значения атрибута , не будет иметь никакого изменения цвета шрифта для второго div, и каждый div будет иметь разные свойства из-за упорядочения классов:

[class^="class1"] {
    color: red;
}

[class^="class1 class2"] {
    background-color: yellow;
}

[class^="class2 class1"] {
    border: 1px solid blue;
}

Пример 3 Fiddle , используя следующий код для поиска конца конца значение атрибута НЕ будет иметь никакого изменения цвета шрифта для первого div, и каждый div будет иметь разные свойства из-за упорядочения классов:

[class$="class1"] {
    color: red;
}

[class$="class1 class2"] {
    background-color: yellow;
}

[class$="class2 class1"] {
    border: 1px solid blue;
}

Разъясняющее утверждение о " Приоритет "

Чтобы быть ясным, в вышеприведенных случаях, что затрагивается в отношении« приоритета утверждения », действительно зависит от того, применяется ли фактически действие или нет элемент. Но так как приложение или нет в некотором смысле, основной приоритет, и поскольку вышеприведенные случаи, когда такое приложение фактически основано на упорядочении классов на элементе HTML Dom (а не на присутствии или отсутствие класса), я подумал, что стоит добавить это в качестве ответа.

Возможно, допустимо использование порядка классов?

Это мысль, которая возникает у меня, на основе комментария BoltClock , Рассмотрим только два класса, которые используются для стилизации элементов, основанных на любых факторах, которые считаются критическими для разных стилей. Эти два класса теоретически могут заменить использование одиннадцати разных отдельных классов, используя комбинацию селекторов атрибутов (на самом деле, как будет отмечено позже, возможности практически безграничны с одним классом, но я обсужу это в тот момент, когда это пост - упорядочение нескольких классов). Для этих двух классов мы можем по-разному стилизовать элементы следующим образом:

Предполагая эти комбинации HTML

<div class="class1">Element 1</div>
<div class="class2">Element 2</div>
<div class="class1 class2">Element 3</div>
<div class="class2 class1">Element 4</div>

Возможности CSS

/* simply has the class */
.class1 {} /* affects elements 1, 3, 4 */
.class2 {} /* affects elements 2-4 */
/* has only a single class */
[class="class1"] {} /* affects element 1 only */
[class="class2"] {} /* affects element 2 only */
/* simply has both classes */
.class1.class2 {} /* affects elements 3-4 */
/* has both classes, but in a particular order */
[class="class1 class2"] {} /* affects element 3 only */
[class="class2 class1"] {} /* affects element 4 only */
/* begins with a class */
[class^="class1"] {} /* affects elements 1 & 3 only */
[class^="class2"] {} /* affects elements 2 & 4 only */
/* ends with a class 
   NOTE: that with only two classes, this is the reverse of the above and is somewhat
   superfluous; however, if a third class is introduced, then the beginning and ending 
   class combinations become more relevant.
*/
[class$="class1"] {} /* affects elements 2 & 4 only */
[class$="class2"] {} /* affects elements 1 & 3 only */

Если я правильно вычислил, 3 класса могут дать не менее 40 комбинаций опций селектора.

Чтобы пояснить мою заметку о «неограниченных» возможностях, учитывая правильную логику, один класс может потенциально вложить в нее комбинации кода, которые просматриваются через синтаксис [attr*=value].

Сложно ли это управлять? Возможно. Это может зависеть от логики того, как именно это реализовано. Точка, которую я пытаюсь выявить, заключается в том, что с CSS3 возможно, чтобы упорядочение классов было значительным, если бы оно было желательным и планировалось для него, и может быть ужасно неправильно использовать мощность CSS таким образом.

55
ответ дан ScottS 3 September 2018 в 16:58
поделиться

Нет, это не так, как вы сказали, если два правила имеют одинаковую специфичность, то будет применяться тот, который приходит позже в вашем CSS.

6
ответ дан dezman 3 September 2018 в 16:58
поделиться

Нет, это не так. соответствующая часть стандарта W3C не упоминает порядок появления для классов.

10
ответ дан Jon 3 September 2018 в 16:58
поделиться