Изменить условие после изменения значения некоторых переменных

В принципе, DOCTYPE описывает HTML, который будет использоваться на вашей странице.

Браузеры также используют DOCTYPE для определения способа отображения страницы. Не включая DOCTYPE или включение некорректного DOCTYPE может вызвать режим quirks. Кикер здесь заключается в том, что режим quirks в Internet Explorer сильно отличается от режима quirks в Firefox (и других браузерах), что означает, что у вас будет много более трудная работа, пытаясь обеспечить постоянство работы вашей страницы во всех браузеров, если страницы отображаются в режиме quirks, чем вы, если они отображаются в стандартном режиме.

В Wikipedia есть более глубокая сводка различий при рендеринге при использовании различных DOCTYPE . XHTML включен некоторыми доктринами, и есть довольно немного споров об использовании XHTML, который хорошо освещен в XHTML - мифах и реальности .

Существуют тонкие различия между различные «жалобы на стандарты», представляющие доктрины, такие как HTML5 doctype (, до HTML5, только известный как «тощий doctype», который не запускает стандартизованный рендеринг в старых браузерах) и другие DOCTYPE, такие как этот для HTML 4.01 переходный:


0
задан farso92 16 January 2019 в 12:54
поделиться

2 ответа

Нет, нет пути. В большинстве языков выражения оцениваются с использованием текущих значений переменных. Вы не можете создать выражение, которое работает как not_equal(current_value_of_A, current_value_of_B), которое будет автоматически меняться при изменении значений A и / или B. Таким образом, так или иначе, вы должны перезапустить свой код.

Распространенным способом сделать нечто подобное является схема наблюдателя . То есть оберните ваше выражение в классе и уведомите класс, когда значение чего-либо изменится.

Наряду с этим, используйте dict вместо списка, который имеет форму {(i,j): notEqual(A[i], A[j]), так что вы можете обновить только индивидуальную (i, j) пару, не перезапуская весь код

0
ответ дан blue_note 16 January 2019 в 12:54
поделиться

Вы можете использовать @propery Python. Он работает как геттер, как и другие языки, такие как C # и JAVA.

В вашем случае вы можете сделать объект, подобный объекту ((i, j), (notEqual(A[i], A[j]))), с помощью геттера.

См. Пример реализации ниже

class bigListElement(object):
    A = [] # this is static
    def __init__(self, index_tuple, areEqual):
        self.index_tuple = index_tuple
        self._areEqual = areEqual

    @staticmethod
    def notEqual(a, b):
        if a is None and b is None:
            return True
        if a != b:
            return True
        return False

    @property
    def areEqual(self):
        return bigListElement.notEqual(bigListElement.A[self.index_tuple[0]], bigListElement.A[self.index_tuple[1]])


print("Hello World")

bigListElement.A = [10, 2, 10, 3, 4]
a = bigListElement((0, 1), False)

print(a.areEqual) # True

bigListElement.A[1] = 10

print(a.areEqual) # False
0
ответ дан HariUserX 16 January 2019 в 12:54
поделиться
Другие вопросы по тегам:

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