- Python Programming with Raspberry Pi
- Sai Yamanoor Srihari Yamanoor
- 379字
- 2021-07-02 23:48:48
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.
- Instant Raspberry Pi Gaming
- Ansible Configuration Management
- Clojure Data Analysis Cookbook
- Hadoop 2.x Administration Cookbook
- 極簡AI入門:一本書讀懂人工智能思維與應用
- Windows 8應用開發實戰
- 城市道路交通主動控制技術
- 可編程控制器技術應用(西門子S7系列)
- Photoshop CS3特效處理融會貫通
- 人工智能與人工生命
- PyTorch Deep Learning Hands-On
- INSTANT Autodesk Revit 2013 Customization with .NET How-to
- 空間站多臂機器人運動控制研究
- OSGi原理與最佳實踐
- IBM Watson Projects