بايثون العرب | Python Arab 🇵🇸
...تعلم لغة برمجة بايثون ..... قنواتنا 》》 @Arab_Victory حسابي على github 》》https://github.com/DrDataYE . موقعنا علئ الويب 》》https://cyber1101.com
Show more📈 Analytical overview of Telegram channel بايثون العرب | Python Arab 🇵🇸
Channel بايثون العرب | Python Arab 🇵🇸 (@pythonarabe) in the Arabic language segment is an active participant. Currently, the community unites 12 777 subscribers, ranking 9 969 in the Technologies & Applications category and 6 034 in the Saudi Arabia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 12 777 subscribers.
According to the latest data from 07 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -214 over the last 30 days and by -10 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 0.65%. Within the first 24 hours after publication, content typically collects N/A% reactions from the total number of subscribers.
- Post reach: On average, each post receives 83 views. Within the first day, a publication typically gains 0 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 2.
- Thematic interests: Content is focused on key topics such as ذَات, قَنَاة, إِنتِرنِت, بُرمُجَة, تَجمِيعَة.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“...تعلم لغة برمجة بايثون .....
قنواتنا 》》 @Arab_Victory
حسابي على github 》》https://github.com/DrDataYE
.
موقعنا علئ الويب 》》https://cyber1101.com”
Thanks to the high frequency of updates (latest data received on 08 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
def my_decorator(func):
def wrapper():
print("قبل تنفيذ الدالة ...")
func()
print("بعد تنفيذ الدالة ...")
return wrapper
@my_decorator
def say_hello():
print("مرحباً بالجميع!")
say_hello()
هنا:
1. تُعرَّف الدالة my_decorator التي تستقبل الدالة func كوسيط.
2. تُنشأ داخلها دالة أخرى اسمها wrapper تُنفذ أي كود إضافي قبل وبعد استدعاء func().
3. عندما نضع @my_decorator فوق الدالة say_hello، فهذا يعني أننا نطبّق التغليف نفسه على الدالة say_hello.
⌯ استخدامات الديكوريتر الشائعة :
ـ = = = = = = = = = = = = = = = = = = = =
• تسجيل النشاط Logging: مثلاً تسجيل وقت تنفيذ الدالة أو القيم المعادة.
• التأكد من الصلاحيات Checking Permissions: مثل أن يُنفذ كود معيّن فقط إن كان المستخدم لديه الصلاحيات المناسبة.
• قياس الأداء Performance Measurement: حساب المدة الزمنية التي تستغرقها الدالة في التنفيذ.
• التخزين المؤقت Caching: لتسريع استدعاء الدوال ذات الحسابات الثقيلة بتخزين نتائجها وإعادة استخدام النتيجة المخبأة عند الاستدعاء مرة أخرى.
⌯ ديكوريتر الدوال والدوال ذات الوسائط ( Arguments ) :
ـ = = = = = = = = = = = = = = = = = = = =
• يمكن استخدام الديكوريتر مع دوال تأخذ وسائط، بحيث يتم تمرير تلك الوسائط للـ wrapper.
مثال:
def decorator_with_args(func):
def wrapper(*args, **kwargs):
print("تم استدعاء الدالة بالوسائط التالية:", args, kwargs)
return func(*args, **kwargs)
return wrapper
@decorator_with_args
def add(a, b):
return a + b
result = add(3, 5)
print("النتيجة:", result)
في هذا المثال:
1. نستخدم *args و **kwargs داخل wrapper حتى نلتقط أي عدد من الوسائط.
2. نطبع الوسائط قبل أن ننفذ الدالة الأصلية.
3. نعيد الناتج النهائي للدالة add.
⌯ ديكوريتر الكلاسات ( Class Decorators ) :
ـ = = = = = = = = = = = = = = = = = = = =
• يمكن أيضاً تطبيق ديكوريتر على الكلاسات بوضع @decorator_name فوق تعريف الكلاس.
• يتم تمرير الكلاس نفسه إلى الديكوريتر كوسيط، ثم يُعاد كلاس جديد أو نفس الكلاس مع تعديل أو إضافة بعض الخصائص عليه.
مثال بسيط :
def class_decorator(cls):
class NewClass(cls):
def new_method(self):
print("هذه دالة جديدة تمت إضافتها عن طريق الديكوريتر")
return NewClass
@class_decorator
class MyClass:
def original_method(self):
print("هذه الدالة الأصلية من MyClass")
obj = MyClass()
obj.original_method()
obj.new_method()
هنا:
1. يستقبل الديكوريتر class_decorator الكلاس MyClass.
2. ننشئ كلاس جديد اسمه NewClass يرث من MyClass ويحتوي على دالة إضافية.
3. نعيد هذا الكلاس الجديد بدلًا من الأصلي، فيكون بالإمكان استدعاء الدالة الجديدة.
4. كما لايقتصر استخدامه على الكلاسات فقط بل على الدوال أيضاً على سبيل المثال
def check(clc):
def comp(a, b):
if a > 0 and b > 0:
print("pass")
clc(a, b)
else:
print("error")
return comp
@check
def calculator(a, b):
print(a + b)
calculator(0, 5)
في هذا المثال قمنا بتعريف (chack) يقوم بفحص الاعداد اذا كانت اكبر من 0 ومن ثم قمنا باستخدامها في داله (calculator).
Available now! Telegram Research 2025 — the year's key insights 
