Python – Module Attributes

Created with Sketch.

Python – Module Attributes

A module is described by its attributes. The attributes of a module perform some tasks or contain some information.
Some of the important attributes are explained below:

__name__ Attribute

The __name__ attribute returns the name of the module. By default, the name of the file (excluding the extension .py) is the value of __name__attribute.


>>> import math
>>> math.__name__
‘math’

In the same way, it gives the name of your custom module.


>>> hello.__name__
‘hello’

However, this can be modified by assigning different strings to this attribute. Change hello.py as shown below.

Example: hello.py
def SayHello(name):
    print ("Hi {}! How are you?".format(name))
    return
__name__="SayHello"

 

And check the __name__ attribute now


>>> import hello
>>> hello.__name__
‘SayHello’

The value of the __name__ attribute is set to __main__ when checked on the interpreter.


>>> __name__
‘__main__’

When we run any Python script (i.e. a module), its __name__ attribute is also set to __main__.
For example, create the following welcome.py in IDLE.

Example: welcome.py
print ("__name__ = ", __name__)

 

Run the above welcome.py in IDLE by pressing F5. You will see the following result.

Output in IDLE:
>>> __name__ =  __main__

 

However, when this module is imported, its __name__ is set to its filename.
Now, import the welcome module in the new file test.py with the following content.

Example: test.py
import welcome
print ("__name__ = ", __name__)

 

Now run the test.py in IDLE by pressing F5. The __name__ attribute is now “welcome”.

Output in IDLE:
>>> __name__ =  welcome

 

This attribute allows a Python script to be used as an executable or as a module.

The following script contains a fibo() function which generates numbers in a Fibonacci series up to a given number.
The script fibo.py checks whether it is executed from the interpreter by its __name__ attribute.
If it is equal to “__main__”, then it means it is being executed from the interpreter and if it is fibo, then it is being used in another module using the import statement.

Example: fibo.py
"""Fibonacci series module"""
def fibo(n):    
    FiboList=[]
    a,b=0,1
    while b<n:
        FiboList.append(b)
        a, b = b, a+b
    return FiboList
if __name__== "__main__":
    print ("Fibonacci series", fibo(100))

 

__doc__ Attribute

The __doc__ attribute denotes the documentation string (docstring) line written in a module code.


>>> import math
>>> math.__doc__
‘This module is always available. It provides access to the mathematical functions defined by the C standard.’

Consider the the following script is saved as test.py module.

Example: test.py
"""This is docstring of test module"""
def SayHello(name):
    print ("Hi {}! How are you?".format(name))
    return

 

The __doc__ attribute will return a string defined at the beginning of the module code.


>>> import test
>>> test.__doc__
‘This is docstring of test module’

__file__ Attribute

__file__ is an optional attribute which holds the name and path of the module file from which it is loaded.


>>> import io
>>> io.__file__
‘C:\\python37\\lib\\io.py’

__dict__ Attribute

The __dict__ attribute will return a dictionary object of module attributes, functions and other definitions and their respective values.


>>> import math
>>> math.__dict__
{‘__name__’: ‘math’, ‘__doc__’: ‘This module is always available. It provides a
ccess to the\nmathematical functions defined by the C standard.’, ‘__package__’:
”, ‘__loader__’: <class ‘_frozen_importlib.BuiltinImporter’>, ‘__spec__’: Modu
leSpec(name=’math’, loader=<class ‘_frozen_importlib.BuiltinImporter’>, origin=’
built-in’), ‘acos’: <built-in function acos>, ‘acosh’: <built-in function acosh>
, ‘asin’: <built-in function asin>, ‘asinh’: <built-in function asinh>, ‘atan’:
<built-in function atan>, ‘atan2’: <built-in function atan2>, ‘atanh’: <built-in
function atanh>, ‘ceil’: <built-in function ceil>, ‘copysign’: <built-in functi
on copysign>, ‘cos’: <built-in function cos>, ‘cosh’: <built-in function cosh>,
‘degrees’: <built-in function degrees>, ‘erf’: <built-in function erf>, ‘erfc’:
<built-in function erfc>, ‘exp’: <built-in function exp>, ‘expm1’: <built-in fun
ction expm1>, ‘fabs’: <built-in function fabs>, ‘factorial’: <built-in function
factorial>, ‘floor’: <built-in function floor>, ‘fmod’: <built-in function fmod>
, ‘frexp’: <built-in function frexp>, ‘fsum’: <built-in function fsum>, ‘gamma’:
<built-in function gamma>, ‘gcd’: <built-in function gcd>, ‘hypot’: <built-in f
unction hypot>, ‘isclose’: <built-in function isclose>, ‘isfinite’: <built-in fu
nction isfinite>, ‘isinf’: <built-in function isinf>, ‘isnan’: <built-in functio
n isnan>, ‘ldexp’: <built-in function ldexp>, ‘lgamma’: <built-in function lgamm
a>, ‘log’: <built-in function log>, ‘log1p’: <built-in function log1p>, ‘log10’:
<built-in function log10>, ‘log2’: <built-in function log2>, ‘modf’: <built-in
function modf>, ‘pow’: <built-in function pow>, ‘radians’: <built-in function ra
dians>, ‘remainder’: <built-in function remainder>, ‘sin’: <built-in function si
n>, ‘sinh’: <built-in function sinh>, ‘sqrt’: <built-in function sqrt>, ‘tan’: <
built-in function tan>, ‘tanh’: <built-in function tanh>, ‘trunc’: <built-in fun
ction trunc>, ‘pi’: 3.141592653589793, ‘e’: 2.718281828459045, ‘tau’: 6.28318530
7179586, ‘inf’: inf, ‘nan’: nan}

 

dir() is a built-in function that also returns the list of all attributes and functions in a module.


Know Module Attributes and Methods
Know Module Attributes and Methods

Learn more about module attributes in Python Docs.

Leave a Reply

Your email address will not be published. Required fields are marked *