المتغيرات العالمية والمحلية في بايثون
المتغيرات العامة أو العالمية ( global ) هي متغيرات يتم الإعلان عنها خارج الدالة. المتغيرات العالمية ( global ) لها نطاق عالمي. هذا يعني أنه يمكن الوصول إليها من أي مكان في البرنامج بأكمله، بينما المتغيرات المحلية ( Local ) هي تلك التي يتم تحديدها داخل الدالة او الوظيفة ( Function ) ونطاقها يقتصر داخل الدالة فقط. بمعنى آخر ، المتغيرات المحلية ( Local ) يمكن الوصول إليها فقط داخل الدالة المحددة. بينما يمكن الوصول إلى المتغيرات العالمية ( global ) في جميع أنحاء البرنامج وداخل كل دالة.
متغيرات بايثون العالمية ( Global Variables )
هي التي تم تحديدها خارج أي دالة ( Function ) والتي يمكن الوصول إليها في جميع أنحاء البرنامج ، أي داخل وخارج كل دالة ( Function ). دعونا نرى كيفية إنشاء متغير عالمي.
# This function uses global variable name
# تستخدم هذه الوظيفة المتغير العالمي name
name = "ahmed obaid"
def myfunc():
print("My Name is " + name)
myfunc()
سيكون الناتج:
My Name is ahmed obaid
في المثال السابق قمنا بتعريف متغير عالمي ( global ) اسمه name ومن ثم قمنا بطلبه داخل الدالة myfunc. ويمكن ايضاً استخدام المتغير name داخل الدالة ()myfunc وكذلك خارجها.
استخدام الكلمة ( global )
عندما تنشئ متغيرًا داخل دالة ، يكون هذا المتغير محليًا ، ولا يمكن استخدامه إلا داخل هذه الدالة.
ولكن يمكن تغيير قيمة متغير عام داخل دالة محددة عن طريق اضافة كلمة ( global ) قبل المتغير
مثال:
name = "ahmed obaid"
def myfunc():
global name
name = "hamza"
print("My Name is " + name)
myfunc()
سيكون الناتج:
My Name is hamza
في المثال السابق قمنا بتعريف متغير عالمي ( global ) اسمه name واعطينا له القيمة ahmed obaid. ومن ثم قمنا بانشاء متغير بنفس الاسم name داخل الدالة myfunc وقمنا بتغيير قيمته الي hamza. وحتي يتم ذلك بشكل صحيح وضعنا قبله كلمة global وبجوارها اسم المتغير name . وذلك حتي نستطيع تغيير قيمته داخل الدالة
متغيرات بايثون المحلية ( Local )
المتغيرات المحلية هي المتغيرات المعلنة داخل دالة. من المعروف أن هذه المتغيرات لديها local scope او نطاق محلي. هذا يعني أنه لا يمكن الوصول إليها إلا من داخل الدالة التي تم انشائها فيها .
مثال:
def welcome():
# متغير محلي
# local variable
message = "Welcome to Ahmed Obaid's blog"
print('Local', message)
welcome()
في المثال السابق قمنا بإنشاء دالة اسمها welcom وفي داخلها قمنا بتعريف متغير محلي اسمه message ووضعنا له قيمه عبارة عن رسالة ترحيبية "Welcome to Ahmed Obaid's blog" ثم قمنا باستدعاء دالة ()welcome
سيكون الناتج:
Local Welcome to Ahmed Obaid's blog
ماذا لو طلبنا من البرنامج طباعة المتغير المحلي message خارج الدالة كما في المثال التالي
مثال:
def welcome():
# متغير محلي
# local variable
message = "Welcome to Ahmed Obaid's blog"
# محاولة الوصول إلى متغير message
#خارج الدالة welcome
# try to access message variable
# outside welcome() function
print(message)
سيكون الناتج:
NameError: name 'message' is not defined
في المثال السابق قمنا بإعطاء امر طباعة للمتغير المحلي message خارج الدالة فظهرت لنا رسالة خطأ لان المتغير message تم تعريفة فقط داخل دالة welcome ولذلك لم يستطع البرنامج التعرف عليه
معلومات اكثر
قد ترغب في الرجوع إلى المصادر التالية للحصول على معلومات إضافية حول هذا الموضوع
اذا كان لديك أي أسئلة؟ اتركها في التعليقات
الكلمات الدلالية
بايثون المتغيرات في بايثون
شارك المقال
عن الكاتب
أحمدُ عُبَيْد
مرحباً، أنا أحمد عبيد مبرمج عربي مصري. أود أن أضع تجاربي وخبراتي في تعلم بايثون على هذا الموقع حتى يكون مرجعاً لي ولكم أيضاً.
عفواً..قم بتسجيل الدخول اولاً..حتي تستطيع التعليق