"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > اختراقات بايثون المتقدمة

اختراقات بايثون المتقدمة

تم النشر بتاريخ 2024-07-30
تصفح:654

Advanced Python Hacks ou

بايثون هي لغة متعددة الاستخدامات وقوية، وإتقان ميزاتها المتقدمة يمكن أن يعزز بشكل كبير كفاءة البرمجة وسهولة القراءة. فيما يلي بعض نصائح Python المتقدمة لمساعدتك على كتابة تعليمات برمجية أفضل وأكثر وضوحًا وأكثر كفاءة.

لقد كتبت كتابين صغيرين لقراءتهما في عطلة نهاية الأسبوع ويغطيان لغة بايثون، إليك الروابط: (1) https://leanpub.com/learnpython_inweekend_pt1 & (2) https://leanpub.com/learnpython_inweekend_pt2


1. استخدم قائمة الفهم للحصول على تعليمات برمجية موجزة

توفر عمليات فهم القائمة طريقة مختصرة لإنشاء القوائم. يمكنها في كثير من الأحيان أن تحل محل حلقات for التقليدية والعبارات الشرطية، مما يؤدي إلى كود أكثر وضوحًا وأكثر قابلية للقراءة.

# Traditional approach
numbers = [1, 2, 3, 4, 5]
squared_numbers = []
for num in numbers:
    squared_numbers.append(num ** 2)

# Using list comprehension
squared_numbers = [num ** 2 for num in numbers]

2. الاستفادة من تعبيرات المولدات لتحسين كفاءة الذاكرة

تسمح لك تعبيرات المولدات بإنشاء تكرارات بطريقة مختصرة دون تخزين التسلسل بأكمله في الذاكرة، مما يجعلها أكثر كفاءة في الذاكرة.

# List comprehension (creates a list)
squared_numbers = [num ** 2 for num in numbers]

# Generator expression (creates an iterator)
squared_numbers = (num ** 2 for num in numbers)

3. استخدم enumerate() لتتبع الفهرس

عند التكرار على عنصر قابل للتكرار والحاجة إلى تتبع فهرس كل عنصر، فإن وظيفة enumerate() لا تقدر بثمن.

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")

4. تبسيط تسلسل السلسلة باستخدام join()

يعد استخدام طريقة join() لتسلسل السلاسل أكثر كفاءة من استخدام عامل التشغيل، خاصة بالنسبة للسلاسل الكبيرة.

fruits = ['apple', 'banana', 'cherry']
fruit_string = ', '.join(fruits)
print(fruit_string)  # Output: apple, banana, cherry

5. استخدم __الفتحات__ لتقليل استخدام الذاكرة

افتراضيًا، تقوم Python بتخزين سمات المثيلات في القاموس، والتي يمكن أن تستهلك ذاكرة كبيرة. يمكن أن يؤدي استخدام __slots__ إلى تقليل استخدام الذاكرة عن طريق تخصيص الذاكرة لمجموعة ثابتة من متغيرات المثيلات.

class Point:
    __slots__ = ['x', 'y']
    def __init__(self, x, y):
        self.x = x
        self.y = y

6. استخدم contextlib.suppress لتجاهل الاستثناءات

يسمح لك مدير السياق contextlib.suppress بتجاهل استثناءات محددة، وتبسيط التعليمات البرمجية الخاصة بك عن طريق تجنب عمليات المحاولة باستثناء الكتل غير الضرورية.

from contextlib import suppress

with suppress(FileNotFoundError):
    with open('file.txt', 'r') as file:
        contents = file.read()

7. استخدم وحدة itertools

توفر وحدة itertools مجموعة من الوظائف الفعالة للعمل مع التكرارات. يمكن لوظائف مثل المنتج والتباديل والمجموعات أن تبسط العمليات المعقدة.

import itertools

# Calculate all products of an input
print(list(itertools.product('abc', repeat=2)))

# Calculate all permutations
print(list(itertools.permutations('abc')))

8. استخدم functools.lru_cache للتخزين المؤقت

يمكن لمصمم ديكور functools.lru_cache تخزين نتائج استدعاءات الوظائف باهظة الثمن مؤقتًا، مما يؤدي إلى تحسين الأداء.

from functools import lru_cache

@lru_cache(maxsize=32)
def fibonacci(n):
    if n 



9. مصممو الديكور الرئيسيون للكود الأنظف

تعد أدوات الديكور أداة قوية لتعديل سلوك الوظائف أو الفئات. يمكن استخدامها للتسجيل والتحكم في الوصول والمزيد.

def my_decorator(func):
    def wrapper():
        print("Something is happening before the function is called.")
        func()
        print("Something is happening after the function is called.")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()

10. استخدم الحيلة مقابل الآخر

تسمح لك البنية for-else في Python بتنفيذ كتلة else بعد اكتمال حلقة for بشكل طبيعي (أي دون مواجهة عبارة Break). يمكن أن يكون هذا مفيدًا بشكل خاص في عمليات البحث.

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(f"{n} equals {x} * {n//x}")
            break
    else:
        # Loop fell through without finding a factor
        print(f"{n} is a prime number")

خاتمة

من خلال دمج نصائح Python المتقدمة هذه في سير عمل التطوير الخاص بك، يمكنك كتابة تعليمات برمجية أكثر كفاءة وقابلية للقراءة وقابلة للصيانة.

سواء كنت تعمل على تحسين استخدام الذاكرة باستخدام __slots__، أو تبسيط عمليات السلسلة باستخدام join()، أو الاستفادة من قوة وحدة itertools، فإن هذه التقنيات يمكنها تحسين مهاراتك في برمجة Python بشكل كبير.

استمر في استكشاف هذه المفاهيم وممارستها للبقاء في المقدمة في رحلتك إلى لغة بايثون.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/hisham_elamir/10-advanced-python-hacks-4-you-j2o?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3