Существует простое эмпирическое правило, чтобы сказать вам, когда использовать ==
или is
.
==
для значения равенства . Используйте его, когда хотите узнать, имеют ли два объекта одинаковое значение. is
для эталонного равенства . Используйте его, когда хотите узнать, ссылаются ли две ссылки на один и тот же объект. В общем, когда вы сравниваете что-то с простым типом, вы обычно проверяете на равенство значений , поэтому вам следует использовать ==
. Например, целью вашего примера, вероятно, является проверка того, имеет ли x значение, равное 2 (==
), а не то, ссылается ли x
на тот же объект, что и 2.
Что еще нужно отметить: из-за того, как работает реализация ссылок CPython, вы получите неожиданные и противоречивые результаты, если по ошибке используете is
для сравнения на равенство ссылок на целых числах:
>>> a = 500
>>> b = 500
>>> a == b
True
>>> a is b
False
Это в значительной степени то, что мы ожидали: a
и b
имеют одинаковое значение, но являются разными сущностями. Но как насчет этого?
>>> c = 200
>>> d = 200
>>> c == d
True
>>> c is d
True
Это не согласуется с более ранним результатом. Что тут происходит? Оказывается, эталонная реализация Python кэширует целочисленные объекты в диапазоне -5..256 как единичные экземпляры по соображениям производительности. Вот пример, демонстрирующий это:
>>> for i in range(250, 260): a = i; print "%i: %s" % (i, a is int(str(i)));
...
250: True
251: True
252: True
253: True
254: True
255: True
256: True
257: False
258: False
259: False
Это еще одна очевидная причина не использовать is
: поведение оставлено на усмотрение реализаций, когда вы ошибочно используете его для равенства значений.
Я не юрист, но не думаю, что вы им должны ни копейки.
Вы заявляете, что используете шрифт только для создания «текстур» - предположительно, это означает, что шрифт используется для рендеринга определенных символов в растровое изображение, вполне возможно, в изображение, которое содержит другие, исходные элементы - и что вы не распространяете «двоичный» шрифт.
Далее я предполагаю, что вы не визуализируете каждый символ шрифта в отдельном растровом изображении, а затем комбинируете эти растровые изображения на лету в своем приложении для создания «текстур». (Это, вероятно, пересечет черту и будет считаться «перераспределением шрифта», хотя и в другой форме.)
Предположим, вы были художником, которому поручили создать плакат для мероприятия. Вы случайно использовали шрифт Calibri в программе Photoshop, чтобы написать на плакате слова «Билеты поступят в продажу 27 сентября». Означает ли это, что вы должны создателю Calibri роялти, потому что вы «распространяете» несколько плакатов и, возможно, повторно используете изображение плаката на веб-сайте? Абсолютно нет, потому что вы не распространяете сам шрифт, то есть все независимые символы,
[Что касается их цен, то они полностью должны установить цену на уровне 750 долларов, 75 тысяч долларов или 7 долларов, и ни одно из этих чисел не является более «правильным», чем любое другое. Но похоже, что они хотят продать вам право распространять весь шрифт (все символы) как набор растровых изображений. Это сильно отличается от простого использования шрифта для создания статических изображений - права, за которое вы уже заплатили лицензией Photoshop.]
Обновление: Typography.com , похоже, со мной согласен:
Растровая графика (gif, jpg, png) Нет разницы между использованием шрифт для создания печатной страницы и используя его для создания пиксельного изображения. Пока человек, создающий images имеет лицензионные шрифты, нет требуется дополнительная лицензия.
Обратитесь к юристу. Если вы находитесь в США, свяжитесь с местной ассоциацией адвокатов. Сообщите им о своей проблеме и позвольте им организовать для вас консультацию.
Конечно, несколько часов рабочего времени адвоката могут легко обойтись более чем в 750 долларов, поэтому, если вам понадобится какое-либо представительство или официальная юридическая консультация, это может быть дешевле заплатить 750 долларов, но это будет стоить первоначального гонорара за консультацию, если профессионал объяснит вам закон.
Согласно Free Software Foundation , «[В] США ... [a] начертание шрифта, то есть внешний вид шрифта, является не охраняется авторским правом ".
Итак, поехали.
Насколько я понимаю, вам разрешено использовать их без лицензионных отчислений без ограничений, вы просто не можете распространять их.
Я не юрист, но Calibri - это стандартный шрифт. Ваша работа создана на основе этого шрифта, поэтому нет, вы не должны платить за него.
Как правило, литейщик должен определять размер гонорара.
Править Я думаю, они сбиты с толку тем, что вы создают растровое изображение с каждой формой буквы и используют это для визуализации текста.
Я не читал это, но Adobe - хороший ресурс по этому вопросу.
Что ж, я не смог найти ничего убедительного. Если есть сомнения, доступны шрифтов с открытым исходным кодом .