ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
في البرمجة ، قد تواجه مواقف ليس فيها للمتغير قيمة. يتم تمثيل هذه الحالات بشكل عام بقيمة خاصة تُعرف بالقيمة الخالية. تحتوي العديد من لغات البرمجة ، مثل C و Java و JavaScript و PHP ، على قيم فارغة مضمنة ، لكن Python تتخذ نهجًا مختلفًا قليلاً لتمثيل المتغيرات الفارغة.
في Python ، ما يعادل null هو لا شيء. إنه ثابت خاص في بايثون يمثل عدم وجود قيمة أو قيمة فارغة. إنه مثيل لنوع البيانات الخاص به - نوع NoneType. إنها ليست مثل 0 أو False أو سلسلة فارغة لأنها نوع بيانات خاص به لا يمثل أي قيمة أو لا يمثل أي كائن.
إذا كنت تتعلم لغة بايثون ، فإن فهم مفهوم لا شيء في بايثون مهم. يوفر لك الوسائل لإنشاء كود فعال يتعامل مع حالات الحافة. أثناء استكشافك لبرمجة Python ، ستصادف سيناريوهات مختلفة حيث لا يوجد شيء يثبت أنه ضروري.
في هذه المقالة ، سوف نستكشف ما هو الصفر أو لا شيء في بايثون. سنستعرض الأمثلة وحالات الاستخدام لمساعدتك على ترسيخ مفهوم القيم الفارغة. لكن أولاً ، دعنا نفهم مفهوم قيم لا شيء أو لا قيمة في بايثون.
جدول المحتويات
ما هو Null في بايثون؟
لفهم القيمة الفارغة في بايثون ، يجب أن تفهم المفهومين التاليين:
الفرق بين لا شيء و لاغية
غير نوع
1. الفرق بين لا شيء و لاغية
يتم استخدام Null في العديد من لغات البرمجة للإشارة إلى مؤشر فارغ أو قيمة غير معروفة. يمكنك تحديد القيمة الفارغة على أنها 0 بهذه اللغات.
ومع ذلك ، في Python ، بدلاً من null ، يمكنك استخدام الكلمة الأساسية None لتعريف الكائنات والمتغيرات الفارغة. لا شيء يخدم بعض الأغراض نفسها التي يخدمها null في لغات أخرى. لكنها كيان مميز ولم يتم تعريفه على أنه 0 أو أي قيمة أخرى.
2. لا شيء
في Python ، لا شيء هو نوع فريد من بنية البيانات ، مصنف تحت نوع يسمى NoneType. إنه مواطن من الدرجة الأولى ، مما يعني أنه يمكنك تخصيصه للمتغيرات. يمكنك أيضًا تمريرها كحجة والعودة نتيجة لذلك.
عندما تقوم بتعيين قيمة متغير None ، فإنها تصبح كائن NoneType. لا شيء لا يساوي سلسلة فارغة ، أو القيمة المنطقية False أو القيمة العددية 0. إنها تعني ببساطة متغير فارغ أو لا شيء.
الآن بعد أن فهمت المصطلحات المتعلقة بلا شيء ، دعنا نمضي قدمًا ونرى كيف يمكنك استخدام لا شيء لحالات استخدام مختلفة!
كيفية استخدام لا شيء في بايثون
في Python ، يمكنك استخدام None لعدد من حالات الاستخدام. في هذا القسم ، سنلقي نظرة على 4 حالات استخدام مهمة لـ None في بايثون.
على وجه التحديد ، سننظر في حالات الاستخدام التالية:
تعيين لا شيء للمتغيرات
استخدام لا شيء كمعلمة افتراضية
التحقق من عدم وجود عامل الهوية
معالجة القيم المفقودة
دعنا ندخله!
1. تعيين لا شيء للمتغيرات
يمكنك تعيين لاشيء للمتغيرات للإشارة إلى عدم وجود قيمة.
على سبيل المثال:
x = None
لا شيء هنا يعني أن قيمة x غير موجودة أو أن القيمة الصالحة لم يتم تحديدها بعد.
2. استخدام بلا كمعلمة افتراضية
يمكنك استخدام None كقيمة معلمة افتراضية لتحديد الوظائف أيضًا. يكون هذا مفيدًا عندما تريد السماح بالوسيطات الاختيارية للمعلمات الافتراضية في دالاتك.
يوضح لك الكود التالي كيفية استخدام None كمعامل افتراضي:
def greet(name=None):
if name is None:
print("Hello, World!")
else:
print(f"Hello, {name}!")
# Call the function without providing a name
greet()
# Call the function with a name
greet("Alice")
عند تشغيل هذا الرمز ، فإنه يطبع "Hello، World!" عند استدعاء تحية () دون أي جدال. ولكن عندما تستدعي تحية () بحجة ، مثل تحية ("أليس") ، فإنها تطبع "مرحبًا ، أليس!". هذا يسمح للوظيفة أن يكون لها وسيطات اختيارية.
3. التحقق من عدم وجود مشغل الهوية
يمكنك استخدام عامل الهوية is للتحقق مما إذا كان المتغير لا شيء. يتيح لك هذا المقارنة ما إذا كان متغيرين يشيران إلى نفس الكائن.
فيما يلي مثال يوضح لك كيفية استخدام عامل تشغيل الهوية:
# Define a variable with no value
var1 = None
# Define a variable with a value
var2 = "Hello, World!"
# Check if var1 is None
if var1 is None:
print("var1 is None")
else:
print("var1 is not None")
# Check if var2 is None
if var2 is None:
print("var2 is None")
else:
print("var2 is not None")
في هذا الكود ، var1 is None سيعيد True لأن var1 تم تعيين القيمة None. من ناحية أخرى ، فإن var2 is None سيعيد False لأن var2 له قيمة سلسلة.
يتم عرض مخرجات البرنامج النصي أدناه:
4. معالجة القيم المفقودة
قد تصادف أيضًا بيانات ذات قيم مفقودة. يمكنك تمثيل هذه القيم المفقودة باستخدام بلا والتعامل معها وفقًا لذلك.
فيما يلي مثال عند التعامل مع قائمة الأرقام:
# Define a list of data with some missing values
data = [1, 2, 3, None, 5, None, 7, 8, None, 10]
def calculate_average(data):
# Filter out None values using list comprehension
valid_data = [value for value in data if value is not None]
# Calculate average if valid_data is not empty
average = sum(valid_data) / len(valid_data) if valid_data else None
return average
# Call the function and print the result
print(calculate_average(data))
تحسب هذه الوظيفة مجموع كل القيم غير الخالية في القائمة وتقسمها على عدد القيم غير الخالية. إذا كانت جميع القيم في القائمة بلا ، فإن الدالة ترجع بلا.
الإخراج معطى أدناه:
باستخدام لا شيء والأساليب المختلفة المذكورة أعلاه ، يمكنك التعامل بفعالية مع القيم المفقودة في بايثون.
لمعرفة المزيد حول التعامل مع القيم المفقودة في Python ، تحقق من الفيديو التالي:
بعض حالات استخدام لا شيء في بايثون
بصرف النظر عن حالات الاستخدام التي تمت مناقشتها في القسم أعلاه ، هناك بعض حالات الاستخدام الأخرى لـ "لا شيء" أيضًا. لا يتم استخدام حالات الاستخدام هذه بشكل متكرر ولكن من الجيد معرفتها وهي مفيدة في بعض السيناريوهات.
في هذا القسم ، سننظر في حالات الاستخدام الثلاثة التالية لـ None في Python:
استخدام "لا شيء" في عبارات الإرجاع
استخدام لا شيء كعلامات
استخدام لاشيء للكائنات المخصصة
دعونا نتعمق في ذلك!
1. استخدام لا شيء كبيانات الإرجاع
يمكنك استخدام لا شيء في عبارات الإرجاع ، خاصة عندما تكمل الوظيفة تنفيذها دون العثور على نتيجة معينة.
على سبيل المثال ، يمكن للدالة التي تبحث عن عنصر في قائمة إرجاع "بلا" إذا لم يتم العثور على العنصر. يوضح الكود التالي استخدام لا شيء كقيمة إرجاع:
# Define a list
numbers = [10, 20, 30, 40, 50]
def find_in_list(lst, target):
for i, value in enumerate(lst):
if value == target:
return i
return None
# Search for a number in the list
print(find_in_list(numbers, 30))
print(find_in_list(numbers, 60))
في هذا الرمز ، تتكرر الدالة find_in_list عبر قائمة الإدخال lst . إذا عثرت على القيمة الهدف ، فإنها تُرجع فهرس تلك القيمة. إذا لم يتم العثور على القيمة الهدف بعد التحقق من القائمة بأكملها ، فإنها ترجع بلا.
الإخراج معطى أدناه:
2. استخدام لا شيء كأعلام
يمكنك أيضًا استخدام None كعلم للإشارة إلى حالة المتغير. على سبيل المثال ، يمكنك استخدامه لتحديد ما إذا كانت القيمة غير مهيأة أو لتتبع حالة خاصة في البرنامج.
فيما يلي مثال على كيفية استخدام بلا كعلم:
def find_first_even_number(numbers):
# Initialize the first_even_number to None
first_even_number = None
# Iterate over the list of numbers
for number in numbers:
# If we find an even number and first_even_number is still None
if number % 2 == 0 and first_even_number is None:
first_even_number = number
break
return first_even_number
numbers = [1, 3, 5, 7, 8, 10]
# Call the function and print the result
print(find_first_even_number(numbers)) # Outputs: 8
في هذا الرمز ، لا يتم استخدام أي شيء كعلم للإشارة إلى أننا لم نعثر على رقم زوجي في القائمة حتى الآن.
إذا بقيت قيمة first_even_number بلا قيمة بعد الحلقة ، فهذا يعني أنه لا توجد أرقام زوجية في القائمة.
إذا لم يكن first_even_number ليس بلا ، فإنه يحتوي على أول رقم زوجي من القائمة.
3. استخدام لاشيء للكائنات المخصصة
يمكنك أيضًا استخدام None للكائنات المخصصة والمعرفة من قبل المستخدم. عند التعامل مع السمات أو الخصائص أو الطرق التي ترجع كائنات أخرى ، يمكنك استخدام لا شيء للدلالة على عدم وجود قيمة أو علاقة.
يوضح المثال التالي كيف يمكنك استخدام لا شيء للكائنات المعرفة من قبل المستخدم:
class Person:
def __init__(self, name):
self.name = name
self.best_friend = None
def set_best_friend(self, person):
self.best_friend = person
def get_best_friend_name(self):
if self.best_friend is not None:
return self.best_friend.name
else:
return None
# Create two Person objects
alice = Person('Alice')
bob = Person('Bob')
# Alice's best friend is Bob
alice.set_best_friend(bob)
print(alice.get_best_friend_name())
# Charlie doesn't have a best friend
charlie = Person('Charlie')
print(charlie.get_best_friend_name())
في هذا المثال ، يتم استخدام لا شيء كقيمة افتراضية للسمة best_friend لمثيل الشخص. تقوم طريقة get_best_friend_name بإرجاع اسم أفضل صديق إذا كان موجودًا ، ولا شيء إذا لم يكن موجودًا.
سيخرج الكود أعلاه ما يلي:
وظائف وتقنيات خاصة للكائن الفارغ
سنناقش الآن بعض الوظائف والتقنيات الخاصة التي يمكنك استخدامها فيما يتعلق بـ NoneType والتعامل مع القيم الخالية. سنغطي قسمين فرعيين رئيسيين:
وظيفة الهوية
وظيفة Getattr
1. وظيفة معرف
الوظيفة id () في Python هي وظيفة مضمنة تُرجع هوية الكائن. هذه الهوية هي رقم صحيح فريد وثابت يتم تعيينه لكائن خلال حياته.
يسمح لك هذا بالتمييز بين الكائنات ذات عناوين الذاكرة المختلفة. تكون الوظيفة مفيدة بشكل خاص عند العمل مع كائنات NoneType ، حيث يمكن استخدامها للتحقق من وجود None في المتغيرات أو التعبيرات.
فيما يلي مثال باستخدام وظيفة id () :
a = None
b = None
c = 42
print(id(a)) # Output: some unique integer representing None
print(id(b)) # Output: same integer as id(a)
print(id(c)) # Output: different integer from id(a) and id(b)
يتم إعطاء إخراج هذا الرمز أدناه:
نظرًا لأن لا أحد هو مواطن من الدرجة الأولى في بايثون ، فإن له هوية فريدة خاصة به. هذا يعني أنه يمكنك استخدام الوظيفة id () لمقارنة المتغيرات بـ None باستخدام هوياتها:
if id(a) == id(None):
print("a is None")
الإخراج معطى أدناه:
2. وظيفة Getattr
وظيفة getattr () هي وظيفة أخرى مضمنة في Python تسمح لك بالوصول إلى سمات الكائن بالاسم.
بالنظر إلى كائن وسلسلة ، تُرجع getattr () قيمة السمة المسماة أو الكائن None إذا كانت السمة غير موجودة.
يمكن أن يكون هذا مفيدًا لك عند التعامل مع القيم الخالية ، خاصة في الحالات التي تحتاج فيها إلى الوصول إلى السمات التي قد تكون مفقودة.
فيما يلي مثال باستخدام دالة getattr () :
class ExampleClass:
def __init__(self, x, y):
self.x = x
self.y = y
example_obj = ExampleClass(3, 4)
# Access attribute using getattr
print(getattr(example_obj, "x")) # Output: 3
print(getattr(example_obj, "z", None)) # Output: None
في المثال أعلاه ، نستخدم getattr () للوصول إلى سمة x ومحاولة الوصول إلى سمة z غير موجودة.
من خلال توفير القيمة الافتراضية بلا ، فإننا نمنع خطأ AttributeError وبدلاً من ذلك نتلقى الكائن None.
نتيجة لذلك ، تسمح هذه الوظيفة بالوصول الآمن للسمات حتى في وجود كائنات فارغة أو سمات مفقودة.
يتم إعطاء إخراج هذا الرمز أدناه:
مقارنة Null في لغات البرمجة الأخرى
في بداية هذه المقالة ، أجرينا مقارنة قصيرة بين Null في Python و Null في لغات البرمجة الأخرى.
في هذا القسم ، سنأخذ هذا الموضوع إلى الأمام ونقارن Null في لغات البرمجة الشائعة الأخرى مع Null في Python. سيساعدك هذا على فهم مفهوم لا شيء في Python بشكل أفضل إذا كنت قادمًا من خلفية برمجة مختلفة.
دعنا ندخله!
1. لاغية في جافا
في Java ، تمثل الكلمة الأساسية "null" مرجعًا لا يشير إلى أي كائن أو قيمة. يتم استخدامه للإشارة إلى عدم وجود قيمة وغالبًا ما يتم استخدامه كقيمة افتراضية لمراجع الكائنات.
على سبيل المثال:
String myString = null; // Declare a String object with a null reference
يختلف Java's null عن لا شيء في Python. يمثل Null نقصًا في كائن ، بينما لا يمثل None كائنًا فعليًا لـ NoneType.
2. لاغية في C.
في لغة البرمجة C ، يتم تمثيل القيمة الفارغة بمؤشر فارغ ، مما يشير إلى مؤشر فارغ أو غير مهيأ. غالبًا ما يتم تمثيل المؤشر الفارغ بقيمة العدد الصحيح 0.
فيما يلي مثال على استخدام مؤشر فارغ في لغة C:
int *myPointer = NULL; // Declare an integer pointer with a null reference
لا يرتبط Null في C بنوع بيانات محدد. إنه بمثابة عنصر نائب للمؤشرات غير المهيأة أو الفارغة.
3. لاغية في PHP
في PHP ، يمثل null متغيرًا بدون قيمة أو بدون مرجع. كما هو الحال في اللغات الأخرى ، يتم استخدام القيمة الفارغة للإشارة إلى المتغيرات غير المهيأة أو الفارغة.
فيما يلي مثال على Null في PHP:
$myVar = NULL; // Declare a variable with a null reference
PHP's null ليس كائنًا من نوع بيانات معين ولكنه ثابت خاص يمثل عدم وجود قيمة.
افكار اخيرة
في رحلتك كمبرمج بايثون ، يعتبر التعرف على قيم لا شيء ذا أهمية كبيرة. إنها ميزة فريدة تعمل كطريقة بايثون لقول "لا شيء هنا".
إنه ضروري لتمثيل غياب القيمة. من خلال فهم خيار None واستخدامه بشكل صحيح ، يمكنك إنشاء وظائف أكثر مرونة باستخدام وسيطات اختيارية والتعامل بفعالية مع البيانات المفقودة.
علاوة على ذلك ، لا تسمح أي قيم لوظائفك بالتواصل بوضوح عندما يكون هناك شيء ما غائب أو عندما لا يتم الوفاء بالشرط. علاوة على ذلك ، يعد فهم لا شيء أمرًا بالغ الأهمية عند التعامل مع قواعد البيانات أو الكائنات المحددة بواسطة المستخدم أو عندما تحتاج إلى تهيئة المتغيرات.
يوضح هذا الدليل الخاص بقيم لا شيء في بايثون بعض السيناريوهات المهمة حيث سترغب في استخدام أي كائن في التعليمات البرمجية الخاصة بك.
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته