473,513 Members | 2,583 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

What is module initialization?

Hi,

I found on the net that there is something called module
initialization. Unfortunately, there is not much information for this.
However, small the information I found module initialization can be of
use to me in my project.

I'm currently messing with a problem where I'm keeping my global
variables ( or symbols) in a module and the other mdoules in the
project acess these global variables.

However, there is one case when a module updates one such global
variable but the variable is not getting updated in the module
containing global symbols ( variables). This happen only at the start
of the program and at rest of the places in the program that global
variable is not accessed.

So, I thought of using this module initialization where I will
intialize the module only once to update that variable. Ans in the
rest of the program where ever this module is imported I shall be able
to easily access the update value of the variable.

Could some one provide me a sample code of module intialization? And
how can I ensure that module initialization is done only once?

Thanks and regards,
Rajat
Sep 2 '08 #1
6 2244
On Tue, 02 Sep 2008 14:32:30 +0100, dudeja.rajat wrote:
I found on the net that there is something called module initialization.
Unfortunately, there is not much information for this. However, small
the information I found module initialization can be of use to me in my
project.
"Module initialization" is what happens when you import a module the
first time. In pure Python modules the module level code is executed and
in extension modules a special initializing function may be called.
However, there is one case when a module updates one such global
variable but the variable is not getting updated in the module
containing global symbols ( variables).
Sounds unlikely if you *really* update the attribute of the module and
not just rebind a local name that was bound to the object in the "global"
module before. Example:

from spam import egg

egg = 42 # This does *not* change `spam.egg` but just the local binding!

Could some one provide me a sample code of module intialization? And how
can I ensure that module initialization is done only once?
Module initialization is only done once, there's nothing to ensure.

Ciao,
Marc 'BlackJack' Rintsch
Sep 2 '08 #2
du**********@gmail.com a écrit :
Hi,

I found on the net that there is something called module
initialization.
The Python C api has a module init function for C-coded modules. There's
no need for such a thing in pure Python modules since all the top-level
code is executed when the module is loaded (as a main script or the
first time the module is imported).
Unfortunately, there is not much information for this.
However, small the information I found module initialization can be of
use to me in my project.

I'm currently messing with a problem where I'm keeping my global
variables ( or symbols) in a module and the other mdoules in the
project acess these global variables.
remember that there's no such thing as a truely global namespace in
Python. "global" really means "module level".
However, there is one case when a module updates one such global
variable
While this is technically legal, you should restrain yourself from doing
such a thing, unless you *really* know what you're doing and why.
but the variable is not getting updated in the module
containing global symbols ( variables).
I suspect you didn't use a qualified name when importing. You have to do
it this way :

# myglobals.py:
answer = 42

# question.py
import myglobals
myglobals.answer = "WTF ?"
So, I thought of using this module initialization where I will
intialize the module only once to update that variable. Ans in the
rest of the program where ever this module is imported I shall be able
to easily access the update value of the variable.

Could some one provide me a sample code of module intialization?
All statements at the top-level of a module are executed when the module
is loaded. That's all it takes wrt/ module initialization.
And
how can I ensure that module initialization is done only once?
Unless you're doing weird things with __import__ or the imp module, you
shouldn't have to worry. import do two things : locate, load *and cache*
the module *if* it isn't already in cache, and bind names into the
importing namespace.
Sep 2 '08 #3
While this is technically legal, you should restrain yourself from doing
such a thing, unless you *really* know what you're doing and why.
>but the variable is not getting updated in the module
containing global symbols ( variables).

I suspect you didn't use a qualified name when importing. You have to do it
this way :

# myglobals.py:
answer = 42

# question.py
import myglobals
myglobals.answer = "WTF ?"
But if I do :-
#question.py
from myglobals import *
myglobals.answer = "WTF ?"

will this work?
Sep 2 '08 #4
On Tue, 2 Sep 2008 15:32:07 +0100, du**********@gmail.com wrote:
But if I do :-
#question.py
from myglobals import *
myglobals.answer = "WTF ?"

will this work?
Why won't you try? In this case you should receive NameError.

--
Regards,
Wojtek Walczak,
http://tosh.pl/gminick/
Sep 2 '08 #5
du**********@gmail.com wrote:
># myglobals.py:
answer = 42

# question.py
import myglobals
myglobals.answer = "WTF ?"

But if I do :-
#question.py
from myglobals import *
myglobals.answer = "WTF ?"

will this work?
with the above definition of myglobals, no. "from myglobals import"
doesn't add the module object to the importing module's namespace.

have you read:

http://effbot.org/zone/import-confusion.htm

?

</F>

Sep 2 '08 #6
On Tue, Sep 2, 2008 at 6:22 PM, Fredrik Lundh <fr*****@pythonware.comwrote:
du**********@gmail.com wrote:
>># myglobals.py:
answer = 42

# question.py
import myglobals
myglobals.answer = "WTF ?"

But if I do :-
#question.py
from myglobals import *
myglobals.answer = "WTF ?"

will this work?

with the above definition of myglobals, no. "from myglobals import" doesn't
add the module object to the importing module's namespace.

have you read:

http://effbot.org/zone/import-confusion.htm

?

</F>

--
http://mail.python.org/mailman/listinfo/python-list
Thanks for your help guys that I got my problem resolved.

Regards,
Rajat
Sep 2 '08 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
1981
by: James S | last post by:
Hi, Basically I've been fighting with this code for a few days now and can't seem to work around this problem. Included is the output, the program I use to get this error and the source code for...
5
2819
by: Steven T. Hatton | last post by:
I've seen people here write that C++ doesn't support modules. What does that mean? 'Module' is a very nebulous term in my book. It probably means something quite different to me than what it does...
21
5170
by: StriderBob | last post by:
Situation : FormX is mdi child form containing 2 ListViews ListView1 contains a list of table names and 4 sub items with data about each table. ListView2 contains a list of the columns on each...
2
1613
by: Bert Szoghy | last post by:
Hello, I am missing something about Visual Basic .NET module variables and window close events. In the following code, after opening Form2 by clicking a button on Form1 and then closing...
6
1415
by: Jack | last post by:
I have a set of functions to wrap a library. For example, mylib_init() mylib_func() mylib_exit() or handle = mylib_init() mylib_func(handle)
2
5129
by: beginner | last post by:
Hi Everyone, An extended module (.pyd) written in C have an init function that is called when the module is imported. Does anyone know if there is a way to provide an init function for a module...
3
1409
by: Peter J. Bismuti | last post by:
How do you define a "module data member" (I want to understand out how this works before making converting to a Class)? Right now I'm defining variables in a module that get put into the global...
0
1137
by: pianomaestro | last post by:
I have a cython extension module "mux" where the initialization is being called more than once (the initmux c function). I am wondering if my use of multiple threads causes this. Can't multiple...
6
1298
by: pianomaestro | last post by:
I have an extension module that gets initialized multiple times because I am using threads. How can this module access global state (not per-thread state) ? It needs to create a singleton. ...
0
7260
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7160
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7384
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
7537
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
7099
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
4746
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3233
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
3222
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
456
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.