Moving from PHP to Python. Is it Possible

Lie Ryan lie.1296 at gmail.com
Sun Dec 13 21:26:31 EST 2009


On 12/14/2009 12:04 PM, Sancar Saran wrote:
> On Monday 14 December 2009 02:10:16 am Diez B. Roggisch wrote:
>>> In my usage GLOBALS are too much useful to discard it.
>>
>> The problem with global variables is their scope. If you have a piece of
>> code, the important thing to know is what influences it's behavior when
>> being executed. Functional programs take this to the extreme and usually
>> don't allow any global or otherwise shared state, so if you have a
>> function that reads
>>
>> a = f(x)
>>
>> and you invoke it twice with the same value for x, you get the same result.
>>
>> But sometimes, you need state that is preserved over time. Object
>> orientied design encapsulates this in objects. Each function (method) in
>> a car-object shares the cars state. But *not* the state of *all* cars,
>> which global variables would.
>>
>> Now when reading code, you have to juggle with all the state that
>> influences it. The broader the scope (and global is the biggest one you
>> can get) the harder it is to understand. And believe me, the longer a
>> system exists and the older the code is you look at, the harder it is to
>> understand what's happening.
>
> Yes, I understood. And I'm using large Global dictionary (or Array) to
> replicate those objects.  State of the thing will store in there. But it
> wasn't an object. Just Assocative array. Staying in global space,

In python, objects is just syntax sugar for dict/associative array. In 
even lower languages (like C++), object is just syntax sugar for a 
malloc-ated block of memory. Object-oriented is designed to eliminate 
the need for having a God Data Structure such as Global Associative 
Array that stores practically everything.

> Because.
>
> In web programming we do not store anything except session. Every object we
> created was destroyed after execution. Using objects in this conditions was
> non sense to me. (of course I'm not very capable programmer probably it was my
> fault to take full advantage of oo programming)

Why is it nonsense? You can create an object that stores the session id, 
and the object's methods would query the database without you have to 
explicitly mention the session id each time. That's cheap and is very 
neat in organizational standpoint.

> Plus. In php we can store arrays in files very easy. Combining this with any
> PHP opcode cache can save those arrays in memory. So we got damn cheap state
> saver.
>
> Of course things may differ in python.

Things differ, but not by that much.



More information about the Python-list mailing list