Why we need to mention the pin is for input or output via
Can I simply use
digitalWrite without setup the
pinMode in before?
In other words, if I set a pin as the output, can I read it after writing to make sure
All pins are input by default, so if you're just reading it, you probably won't need to set the mode. That said, you really should explicitly set the mode as you can't guarantee what state it might currently be in.
digitalRead() should work regardless of whether the pin is in input or output, as the
GPLEVn register is independent.
I'm quoting 'joan' from this page:
"You can't do both. The latest call is the one in effect. You can read the level of a gpio regardless of its mode. Presumably the gpio edge detect interrupt hardware works regardless of the mode as well."
To what depth your applications needs are, this page might help you more: https://www.raspberrypi.org/forums/viewtopic.php?t=38753
and definitely this: https://sourceforge.net/projects/raspberry-gpio-python/
Also as noted pin declarations are local to each python script.