Если вы хотите сделать миниатюру UIImage (с пропорциональным изменением размера или, возможно, с некоторым обрезанием), проверьте категорию UIImage + Resize , которая позволяет вам использовать краткий, подобный ImageMagick-подобный синтаксис:
UIImage* squareImage = [image resizedImageByMagick: @"320x320#"];
Вы должны написать:
if (self.a != 0) and (self.b != 0) :
" &
] " является побитовым оператором и не подходит для логических операций. Эквивалент « &&
» - «и» в Python.
Более короткий способ проверить, что вы хотите, - использовать оператор «in»:
if 0 not in (self.a, self.b) :
Вы можете проверить, является ли что-либо частью итерация с "in", она работает для:
"foo" in ("foo", 1, c, и т.д.)
вернет истинные «foo» в [«foo», 1, c и т. Д.]
вернет true "a" in "ago"
вернет истину "foo" в {"foo": "bar"}
вернет true В качестве ответа на комментарии:
Да, использование "in" медленнее, так как вы создаете Объект кортежа, но на самом деле производительность здесь не проблема, плюс удобочитаемость имеет большое значение в Python.
Для проверки треугольника легче читать:
0 not in (self.a, self.b, self.c)
Чем
(self.a != 0) and (self.b != 0) and (self.c != 0)
Это тоже легче рефакторинг.
Конечно, в в этом примере это действительно не так важно, это очень простой фрагмент. Но этот стиль ведет к коду Pythonic, который ведет к более счастливому программисту (и худеет, улучшает сексуальную жизнь и т. Д.) Над большими программами.
Use the keyword and
, not &
because &
is a bit operator.
Be careful with this... just so you know, in Java and C++, the &
operator is ALSO a bit operator. The correct way to do a boolean comparison in those languages is &&
. Similarly |
is a bit operator, and ||
is a boolean operator. In Python and
and or
are used for boolean comparisons.