Разделите условие на несколько логических значений, а затем используйте мастер-логическое значение в качестве условия.
bool isOpaque = object.Alpha == 1.0f;
bool isDrawable = object.CanDraw && object.Layer == currentLayer;
bool isHidden = hideList.Find(object);
bool isVisible = isOpaque && isDrawable && ! isHidden;
if(isVisible)
{
// ...
}
Еще лучше:
public bool IsVisible {
get
{
bool isOpaque = object.Alpha == 1.0f;
bool isDrawable = object.CanDraw && object.Layer == currentLayer;
bool isHidden = hideList.Find(object);
return isOpaque && isDrawable && ! isHidden;
}
}
void Draw()
{
if(IsVisible)
{
// ...
}
}
Удостоверьтесь, что вы даете имя вашей переменной, которое фактически указывает на намерение, а не функцию. Это очень поможет разработчику поддерживать ваш код ... это может быть ВЫ!
Используя созданный в модулях это может быть достигнуто со следующим кодом, поскольку Greg уже дал идею:
import fileinput
isStdin = True
for line in fileinput.input:
# check if it is not stdin
if not fileinput.isstdin():
isStdin = False
break
# continue to read stdin
print(line)
fileinput.close()