Reputation: 1027
In my python standard library(Python 2.7
), I am looking for specific methods within the modules.
For e.g. if i open re.py
, i can see that there are specific methods like findall
,search
etc.
The same is evident when i do dir(re)
. I can clearly see the above methods.
Similarly,when i do dir(os)
, there exists a method called system
, which i usually call using os.system(cmd_name)
.
But when i look for this method under os.py
, it does not exist. Am i doing something wrong? Please guide
Upvotes: 3
Views: 78
Reputation: 281330
This function is not defined in the os
module, so you won't find the definition in os.py
. It's imported into os
from another module; which module that is will depend on your operating system. You can check:
>>> os.system.__module__
'nt'
Here, you can see that since I'm on Windows, os.system
comes from the nt
module.
You'll probably find that os.system.__module__
is either 'nt'
or 'posix'
, representing either the nt
or posix
module. The question then is, where are those modules defined? There's no nt.py
or posix.py
.
It turns out these modules are implemented in C, in Modules/posixmodule.c
. Yes, the nt
module is posixmodule.c
, and so is the posix
module. It's weird.
Upvotes: 5