The scope of variables in a function

There are two types of variables in a Python program: local and global variables. Local variables are local to a function, that is, it is a variable declared within a function is accessible within that function. The example is as follows:

def add_function(): 
a = 3
b = 2
c = a + b
print("The sum of a and b is ", c)

In this example, the variables a and b are local to the function add_function. Let's consider an example of a global variable:

a = 3 
b = 2
def add_function():
c = a + b
print("The sum of a and b is ", c)

add_function()

In this case, the variables a and b are declared in the main body of the Python script. They are accessible across the entire program. Now, let's consider this example:

a = 3 
def my_function():
a = 5
print("The value of a is ", a)

my_function()
print("The value of a is ", a)

The program output is:

      The value of a is

5

The value of a is

3

In this case, when my_function is called, the value of a is 5 and the value of a is 3 in the print statement of the main body of the script. In Python, it is not possible to explicitly modify the value of global variables inside functions. In order to modify the value of a global variable, we need to make use of the global keyword:

a = 3 
def my_function():
global a
a = 5
print("The value of a is ", a)

my_function()
print("The value of a is ", a)

In general, it is not recommended to modify variables inside functions as it is not a very safe practice of modifying variables. The best practice would be passing variables as arguments and returning the modified value. Consider the following example:

a = 3 
def my_function(a):
a = 5
print("The value of a is ", a)
return a

a = my_function(a)
print("The value of a is ", a)

In the preceding program, the value of a is 3. It is passed as an argument to my_function. The function returns 5, which is saved to a. We were able to safely modify the value of a.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.147.87